pub trait IpRouteTableContext<I: IpLayerIpExt, BT: IpRoutingBindingsTypes>: IpDeviceContext<I> {
type IpDeviceIdCtx<'a>: DeviceIdContext<AnyDevice, DeviceId = Self::DeviceId, WeakDeviceId = Self::WeakDeviceId> + IpRoutingDeviceContext<I> + IpDeviceContext<I>;
// Required methods
fn with_ip_routing_table<O, F: FnOnce(&mut Self::IpDeviceIdCtx<'_>, &RoutingTable<I, Self::DeviceId>) -> O>(
&mut self,
table_id: &RoutingTableId<I, Self::DeviceId, BT>,
cb: F,
) -> O;
fn with_ip_routing_table_mut<O, F: FnOnce(&mut Self::IpDeviceIdCtx<'_>, &mut RoutingTable<I, Self::DeviceId>) -> O>(
&mut self,
table_id: &RoutingTableId<I, Self::DeviceId, BT>,
cb: F,
) -> O;
}Expand description
The state context that gives access to a singular routing table.
Required Associated Types§
Sourcetype IpDeviceIdCtx<'a>: DeviceIdContext<AnyDevice, DeviceId = Self::DeviceId, WeakDeviceId = Self::WeakDeviceId> + IpRoutingDeviceContext<I> + IpDeviceContext<I>
type IpDeviceIdCtx<'a>: DeviceIdContext<AnyDevice, DeviceId = Self::DeviceId, WeakDeviceId = Self::WeakDeviceId> + IpRoutingDeviceContext<I> + IpDeviceContext<I>
The inner device id context.
Required Methods§
Sourcefn with_ip_routing_table<O, F: FnOnce(&mut Self::IpDeviceIdCtx<'_>, &RoutingTable<I, Self::DeviceId>) -> O>(
&mut self,
table_id: &RoutingTableId<I, Self::DeviceId, BT>,
cb: F,
) -> O
fn with_ip_routing_table<O, F: FnOnce(&mut Self::IpDeviceIdCtx<'_>, &RoutingTable<I, Self::DeviceId>) -> O>( &mut self, table_id: &RoutingTableId<I, Self::DeviceId, BT>, cb: F, ) -> O
Calls the function with an immutable reference to IP routing table.
Sourcefn with_ip_routing_table_mut<O, F: FnOnce(&mut Self::IpDeviceIdCtx<'_>, &mut RoutingTable<I, Self::DeviceId>) -> O>(
&mut self,
table_id: &RoutingTableId<I, Self::DeviceId, BT>,
cb: F,
) -> O
fn with_ip_routing_table_mut<O, F: FnOnce(&mut Self::IpDeviceIdCtx<'_>, &mut RoutingTable<I, Self::DeviceId>) -> O>( &mut self, table_id: &RoutingTableId<I, Self::DeviceId, BT>, cb: F, ) -> O
Calls the function with a mutable reference to IP routing table.
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".