netstack3_ip::gmp

Trait IgmpContext

Source
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§

Source

type SendContext<'a>: IgmpSendContext<BT, DeviceId = Self::DeviceId> + 'a

The inner IGMP context capable of sending packets.

Required Methods§

Source

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.

Implementors§