pub trait IpDeviceIpExt: IpDeviceStateIpExt + AssignedAddrIpExt {
type State<BT: IpDeviceStateBindingsTypes>: AsRef<IpDeviceState<Self, BT>> + AsMut<IpDeviceState<Self, BT>>;
type Configuration: AsRef<IpDeviceConfiguration> + Clone;
type Timer<D: WeakDeviceIdentifier, A: IpAddressIdSpec>: Into<IpDeviceTimerId<Self, D, A>> + From<IpDeviceTimerId<Self, D, A>> + Clone + Eq + PartialEq + Debug + Hash;
type AddressConfig<I: Instant>: Default + Debug;
type ManualAddressConfig<I: Instant>: Default + Debug + Into<Self::AddressConfig<I>>;
type AddressState<I: Instant>: 'static + Inspectable;
type ConfigurationUpdate: From<IpDeviceConfigurationUpdate> + AsRef<IpDeviceConfigurationUpdate> + Debug;
type ConfigurationAndFlags: From<(Self::Configuration, IpDeviceFlags)> + AsRef<IpDeviceConfiguration> + AsRef<IpDeviceFlags> + AsMut<IpDeviceConfiguration> + PartialEq + Debug;
// Required methods
fn get_common_props<I: Instant>(
config: &Self::AddressConfig<I>,
) -> CommonAddressProperties<I>;
fn is_addr_assigned<I: Instant>(addr_state: &Self::AddressState<I>) -> bool;
fn timer_device_id<D: WeakDeviceIdentifier, A: IpAddressIdSpec>(
timer: &Self::Timer<D, A>,
) -> Option<D::Strong>;
fn take_addr_config_for_removal<I: Instant>(
addr_state: &mut Self::AddressState<I>,
) -> Option<Self::AddressConfig<I>>;
}
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> + Clone
type Configuration: AsRef<IpDeviceConfiguration> + Clone
IP layer configuration kept by the device.
Sourcetype Timer<D: WeakDeviceIdentifier, A: IpAddressIdSpec>: Into<IpDeviceTimerId<Self, D, A>> + From<IpDeviceTimerId<Self, D, A>> + Clone + Eq + PartialEq + Debug + Hash
type Timer<D: WeakDeviceIdentifier, A: IpAddressIdSpec>: Into<IpDeviceTimerId<Self, D, A>> + From<IpDeviceTimerId<Self, D, A>> + Clone + Eq + PartialEq + Debug + Hash
High level IP device timer.
Sourcetype AddressConfig<I: Instant>: Default + Debug
type AddressConfig<I: Instant>: Default + Debug
Device address configuration.
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 AddressState<I: Instant>: 'static + Inspectable
type AddressState<I: Instant>: 'static + Inspectable
Device address associated state.
Sourcetype ConfigurationUpdate: From<IpDeviceConfigurationUpdate> + AsRef<IpDeviceConfigurationUpdate> + Debug
type ConfigurationUpdate: From<IpDeviceConfigurationUpdate> + AsRef<IpDeviceConfigurationUpdate> + Debug
Device configuration update request.
Sourcetype ConfigurationAndFlags: From<(Self::Configuration, IpDeviceFlags)> + AsRef<IpDeviceConfiguration> + AsRef<IpDeviceFlags> + AsMut<IpDeviceConfiguration> + PartialEq + Debug
type ConfigurationAndFlags: From<(Self::Configuration, IpDeviceFlags)> + AsRef<IpDeviceConfiguration> + AsRef<IpDeviceFlags> + AsMut<IpDeviceConfiguration> + PartialEq + Debug
IP layer configuration and flags.
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 is_addr_assigned<I: Instant>(addr_state: &Self::AddressState<I>) -> bool
fn is_addr_assigned<I: Instant>(addr_state: &Self::AddressState<I>) -> bool
Returns whether the address is currently assigned based on state.
Sourcefn timer_device_id<D: WeakDeviceIdentifier, A: IpAddressIdSpec>(
timer: &Self::Timer<D, A>,
) -> Option<D::Strong>
fn timer_device_id<D: WeakDeviceIdentifier, A: IpAddressIdSpec>( timer: &Self::Timer<D, A>, ) -> Option<D::Strong>
Extracts the device ID from a device timer.
Sourcefn take_addr_config_for_removal<I: Instant>(
addr_state: &mut Self::AddressState<I>,
) -> Option<Self::AddressConfig<I>>
fn take_addr_config_for_removal<I: Instant>( addr_state: &mut Self::AddressState<I>, ) -> Option<Self::AddressConfig<I>>
Extracts the address configuration from the state in preparation for removal.
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.