netstack3_ip::multicast_forwarding

Trait MulticastForwardingStateContext

Source
pub trait MulticastForwardingStateContext<I: IpLayerIpExt, BT: MulticastForwardingBindingsTypes>: DeviceIdContext<AnyDevice> {
    type Ctx<'a>: MulticastRouteTableContext<I, BT, DeviceId = Self::DeviceId, WeakDeviceId = Self::WeakDeviceId> + MulticastForwardingPendingPacketsContext<I, BT, DeviceId = Self::DeviceId, WeakDeviceId = Self::WeakDeviceId> + CounterContext<MulticastForwardingCounters<I>>;

    // Required methods
    fn with_state<O, F: FnOnce(&MulticastForwardingState<I, Self::DeviceId, BT>, &mut Self::Ctx<'_>) -> O>(
        &mut self,
        cb: F,
    ) -> O;
    fn with_state_mut<O, F: FnOnce(&mut MulticastForwardingState<I, Self::DeviceId, BT>, &mut Self::Ctx<'_>) -> O>(
        &mut self,
        cb: F,
    ) -> O;
}
Expand description

A trait providing access to MulticastForwardingState.

Required Associated Types§

Source

type Ctx<'a>: MulticastRouteTableContext<I, BT, DeviceId = Self::DeviceId, WeakDeviceId = Self::WeakDeviceId> + MulticastForwardingPendingPacketsContext<I, BT, DeviceId = Self::DeviceId, WeakDeviceId = Self::WeakDeviceId> + CounterContext<MulticastForwardingCounters<I>>

The context available after locking the multicast forwarding state.

Required Methods§

Source

fn with_state<O, F: FnOnce(&MulticastForwardingState<I, Self::DeviceId, BT>, &mut Self::Ctx<'_>) -> O>( &mut self, cb: F, ) -> O

Provides immutable access to the state.

Source

fn with_state_mut<O, F: FnOnce(&mut MulticastForwardingState<I, Self::DeviceId, BT>, &mut Self::Ctx<'_>) -> O>( &mut self, cb: F, ) -> O

Provides mutable access to the state.

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§