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>(
config: &Self::AddressConfig<I>,
) -> CommonAddressProperties<I>
where I: Instant;
fn timer_device_id<D, BT>(
timer: &Self::Timer<D, BT>,
) -> Option<<D as WeakDeviceIdentifier>::Strong>
where D: WeakDeviceIdentifier,
BT: IpDeviceStateBindingsTypes;
}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>(
config: &Self::AddressConfig<I>,
) -> CommonAddressProperties<I>where
I: Instant,
fn get_common_props<I>(
config: &Self::AddressConfig<I>,
) -> CommonAddressProperties<I>where
I: Instant,
Gets the common properties of an address from its configuration.
Sourcefn timer_device_id<D, BT>(
timer: &Self::Timer<D, BT>,
) -> Option<<D as WeakDeviceIdentifier>::Strong>where
D: WeakDeviceIdentifier,
BT: IpDeviceStateBindingsTypes,
fn timer_device_id<D, BT>(
timer: &Self::Timer<D, BT>,
) -> Option<<D as WeakDeviceIdentifier>::Strong>where
D: WeakDeviceIdentifier,
BT: IpDeviceStateBindingsTypes,
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.