pub trait Ipv6DeviceConfigurationContext<BC: IpDeviceBindingsContext<Ipv6, Self::DeviceId>>: IpDeviceConfigurationContext<Ipv6, BC> {
type Ipv6DeviceStateCtx<'s>: Ipv6DeviceContext<BC, DeviceId = Self::DeviceId, AddressId = Self::AddressId> + GmpHandler<Ipv6, BC> + MldPacketHandler<BC, Self::DeviceId> + NudIpHandler<Ipv6, BC> + DadHandler<Ipv6, BC> + RsHandler<BC> + SlaacHandler<BC> + RouteDiscoveryHandler<BC> + 's;
type WithIpv6DeviceConfigurationMutInner<'s>: WithIpv6DeviceConfigurationMutInner<BC, DeviceId = Self::DeviceId> + 's;
// Required methods
fn with_ipv6_device_configuration<O, F: FnOnce(&Ipv6DeviceConfiguration, Self::Ipv6DeviceStateCtx<'_>) -> O>(
&mut self,
device_id: &Self::DeviceId,
cb: F,
) -> O;
fn with_ipv6_device_configuration_mut<O, F: FnOnce(Self::WithIpv6DeviceConfigurationMutInner<'_>) -> O>(
&mut self,
device_id: &Self::DeviceId,
cb: F,
) -> O;
}
Expand description
The core context for IPv6 device configuration.
Required Associated Types§
Sourcetype Ipv6DeviceStateCtx<'s>: Ipv6DeviceContext<BC, DeviceId = Self::DeviceId, AddressId = Self::AddressId> + GmpHandler<Ipv6, BC> + MldPacketHandler<BC, Self::DeviceId> + NudIpHandler<Ipv6, BC> + DadHandler<Ipv6, BC> + RsHandler<BC> + SlaacHandler<BC> + RouteDiscoveryHandler<BC> + 's
type Ipv6DeviceStateCtx<'s>: Ipv6DeviceContext<BC, DeviceId = Self::DeviceId, AddressId = Self::AddressId> + GmpHandler<Ipv6, BC> + MldPacketHandler<BC, Self::DeviceId> + NudIpHandler<Ipv6, BC> + DadHandler<Ipv6, BC> + RsHandler<BC> + SlaacHandler<BC> + RouteDiscoveryHandler<BC> + 's
The context available while holding device configuration.
Sourcetype WithIpv6DeviceConfigurationMutInner<'s>: WithIpv6DeviceConfigurationMutInner<BC, DeviceId = Self::DeviceId> + 's
type WithIpv6DeviceConfigurationMutInner<'s>: WithIpv6DeviceConfigurationMutInner<BC, DeviceId = Self::DeviceId> + 's
The context available while holding mutable device configuration.
Required Methods§
Sourcefn with_ipv6_device_configuration<O, F: FnOnce(&Ipv6DeviceConfiguration, Self::Ipv6DeviceStateCtx<'_>) -> O>(
&mut self,
device_id: &Self::DeviceId,
cb: F,
) -> O
fn with_ipv6_device_configuration<O, F: FnOnce(&Ipv6DeviceConfiguration, Self::Ipv6DeviceStateCtx<'_>) -> O>( &mut self, device_id: &Self::DeviceId, cb: F, ) -> O
Calls the function with an immutable reference to the IPv6 device
configuration and an Ipv6DeviceStateCtx
.
Sourcefn with_ipv6_device_configuration_mut<O, F: FnOnce(Self::WithIpv6DeviceConfigurationMutInner<'_>) -> O>(
&mut self,
device_id: &Self::DeviceId,
cb: F,
) -> O
fn with_ipv6_device_configuration_mut<O, F: FnOnce(Self::WithIpv6DeviceConfigurationMutInner<'_>) -> O>( &mut self, device_id: &Self::DeviceId, cb: F, ) -> O
Calls the function with a WithIpv6DeviceConfigurationMutInner
.
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.