pub trait IgmpContext<BT: IgmpBindingsTypes>: DeviceIdContext<AnyDevice> + IgmpContextMarker {
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, Self, BT>, &'a mut IgmpState<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, Self, BT>, &'a mut IgmpState<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, Self, BT>, &'a mut IgmpState<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.