pub trait IgmpContext<BT: IgmpBindingsTypes>:
DeviceIdContext<AnyDevice>
+ IgmpContextMarker
+ ResourceCounterContext<Self::DeviceId, IgmpCounters> {
type SendContext<'a>: IgmpSendContext<BT, DeviceId = Self::DeviceId> + 'a;
// Required method
fn with_igmp_state_mut<O, F: for<'a> FnOnce(Self::SendContext<'a>, GmpStateRef<'a, Ipv4, IgmpTypeLayout, BT>) -> O>(
&mut self,
device: &Self::DeviceId,
cb: F,
) -> O;
}Expand description
The execution context for the Internet Group Management Protocol (IGMP).
Required Associated Types§
Sourcetype SendContext<'a>: IgmpSendContext<BT, DeviceId = Self::DeviceId> + 'a
type SendContext<'a>: IgmpSendContext<BT, DeviceId = Self::DeviceId> + 'a
The inner IGMP context capable of sending packets.
Required Methods§
Sourcefn with_igmp_state_mut<O, F: for<'a> FnOnce(Self::SendContext<'a>, GmpStateRef<'a, Ipv4, IgmpTypeLayout, BT>) -> O>(
&mut self,
device: &Self::DeviceId,
cb: F,
) -> O
fn with_igmp_state_mut<O, F: for<'a> FnOnce(Self::SendContext<'a>, GmpStateRef<'a, Ipv4, IgmpTypeLayout, BT>) -> O>( &mut self, device: &Self::DeviceId, cb: F, ) -> O
Calls the function with a mutable reference to the device’s IGMP state
and whether or not IGMP is enabled for the device.
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.