pub trait IpDeviceIpExt:
IpDeviceStateIpExt
+ AssignedAddrIpExt
+ IpExt
+ DadIpExt {
type State<BT: IpDeviceStateBindingsTypes>: AsRef<IpDeviceState<Self, BT>> + AsMut<IpDeviceState<Self, BT>>;
type Configuration: AsRef<IpDeviceConfiguration> + AsMut<IpDeviceConfiguration> + Clone + Debug + Eq + PartialEq;
type Timer<D: WeakDeviceIdentifier, BT: IpDeviceStateBindingsTypes>: Into<IpDeviceTimerId<Self, D, BT>> + From<IpDeviceTimerId<Self, D, BT>> + Clone + Eq + PartialEq + Debug + Hash;
type ManualAddressConfig<I: Instant>: Default + Debug + Into<Self::AddressConfig<I>>;
type ConfigurationUpdate: From<IpDeviceConfigurationUpdate> + AsRef<IpDeviceConfigurationUpdate> + Debug;
// Required methods
fn get_common_props<I: Instant>(
config: &Self::AddressConfig<I>,
) -> CommonAddressProperties<I>;
fn timer_device_id<D: WeakDeviceIdentifier, BT: IpDeviceStateBindingsTypes>(
timer: &Self::Timer<D, BT>,
) -> Option<D::Strong>;
}
Expand description
An extension trait adding IP device properties.
Required Associated Types§
Sourcetype State<BT: IpDeviceStateBindingsTypes>: AsRef<IpDeviceState<Self, BT>> + AsMut<IpDeviceState<Self, BT>>
type State<BT: IpDeviceStateBindingsTypes>: AsRef<IpDeviceState<Self, BT>> + AsMut<IpDeviceState<Self, BT>>
IP layer state kept by the device.
Sourcetype Configuration: AsRef<IpDeviceConfiguration> + AsMut<IpDeviceConfiguration> + Clone + Debug + Eq + PartialEq
type Configuration: AsRef<IpDeviceConfiguration> + AsMut<IpDeviceConfiguration> + Clone + Debug + Eq + PartialEq
IP layer configuration kept by the device.
Sourcetype Timer<D: WeakDeviceIdentifier, BT: IpDeviceStateBindingsTypes>: Into<IpDeviceTimerId<Self, D, BT>> + From<IpDeviceTimerId<Self, D, BT>> + Clone + Eq + PartialEq + Debug + Hash
type Timer<D: WeakDeviceIdentifier, BT: IpDeviceStateBindingsTypes>: Into<IpDeviceTimerId<Self, D, BT>> + From<IpDeviceTimerId<Self, D, BT>> + Clone + Eq + PartialEq + Debug + Hash
High level IP device timer.
Sourcetype ManualAddressConfig<I: Instant>: Default + Debug + Into<Self::AddressConfig<I>>
type ManualAddressConfig<I: Instant>: Default + Debug + Into<Self::AddressConfig<I>>
Manual device address configuration (user-initiated).
Sourcetype ConfigurationUpdate: From<IpDeviceConfigurationUpdate> + AsRef<IpDeviceConfigurationUpdate> + Debug
type ConfigurationUpdate: From<IpDeviceConfigurationUpdate> + AsRef<IpDeviceConfigurationUpdate> + Debug
Device configuration update request.
Required Methods§
Sourcefn get_common_props<I: Instant>(
config: &Self::AddressConfig<I>,
) -> CommonAddressProperties<I>
fn get_common_props<I: Instant>( config: &Self::AddressConfig<I>, ) -> CommonAddressProperties<I>
Gets the common properties of an address from its configuration.
Sourcefn timer_device_id<D: WeakDeviceIdentifier, BT: IpDeviceStateBindingsTypes>(
timer: &Self::Timer<D, BT>,
) -> Option<D::Strong>
fn timer_device_id<D: WeakDeviceIdentifier, BT: IpDeviceStateBindingsTypes>( timer: &Self::Timer<D, BT>, ) -> Option<D::Strong>
Extracts the device ID from a device timer.
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.