pub enum WeakDeviceId<BT>where
BT: DeviceLayerTypes,{
Ethernet(BaseWeakDeviceId<EthernetLinkDevice, BT>),
Loopback(BaseWeakDeviceId<LoopbackDevice, BT>),
PureIp(BaseWeakDeviceId<PureIpDevice, BT>),
}
Expand description
A weak ID identifying a device.
This device ID makes no claim about the live-ness of the underlying device.
See DeviceId
for a device ID that acts as a witness to the live-ness of
a device.
Variants§
Ethernet(BaseWeakDeviceId<EthernetLinkDevice, BT>)
Loopback(BaseWeakDeviceId<LoopbackDevice, BT>)
PureIp(BaseWeakDeviceId<PureIpDevice, BT>)
Implementations§
Source§impl<BT> WeakDeviceId<BT>where
BT: DeviceLayerTypes,
impl<BT> WeakDeviceId<BT>where
BT: DeviceLayerTypes,
Sourcepub fn debug_references(&self) -> DynDebugReferences
pub fn debug_references(&self) -> DynDebugReferences
Creates a [DebugReferences
] instance for this device.
Sourcepub fn bindings_id(&self) -> &<BT as DeviceLayerStateTypes>::DeviceIdentifier
pub fn bindings_id(&self) -> &<BT as DeviceLayerStateTypes>::DeviceIdentifier
Returns the bindings identifier associated with the device.
Trait Implementations§
Source§impl<BT> Clone for WeakDeviceId<BT>where
BT: DeviceLayerTypes,
impl<BT> Clone for WeakDeviceId<BT>where
BT: DeviceLayerTypes,
Source§fn clone(&self) -> WeakDeviceId<BT>
fn clone(&self) -> WeakDeviceId<BT>
Returns a copy of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source
. Read moreSource§impl<BT> Debug for WeakDeviceId<BT>where
BT: DeviceLayerTypes,
impl<BT> Debug for WeakDeviceId<BT>where
BT: DeviceLayerTypes,
Source§impl<BT> DeviceIdentifier for WeakDeviceId<BT>where
BT: DeviceLayerTypes,
impl<BT> DeviceIdentifier for WeakDeviceId<BT>where
BT: DeviceLayerTypes,
Source§fn is_loopback(&self) -> bool
fn is_loopback(&self) -> bool
Returns true if the device is a loopback device.
Source§impl<BT> From<BaseWeakDeviceId<EthernetLinkDevice, BT>> for WeakDeviceId<BT>where
BT: DeviceLayerTypes,
impl<BT> From<BaseWeakDeviceId<EthernetLinkDevice, BT>> for WeakDeviceId<BT>where
BT: DeviceLayerTypes,
Source§fn from(id: BaseWeakDeviceId<EthernetLinkDevice, BT>) -> WeakDeviceId<BT>
fn from(id: BaseWeakDeviceId<EthernetLinkDevice, BT>) -> WeakDeviceId<BT>
Converts to this type from the input type.
Source§impl<BT> From<BaseWeakDeviceId<LoopbackDevice, BT>> for WeakDeviceId<BT>where
BT: DeviceLayerTypes,
impl<BT> From<BaseWeakDeviceId<LoopbackDevice, BT>> for WeakDeviceId<BT>where
BT: DeviceLayerTypes,
Source§fn from(id: BaseWeakDeviceId<LoopbackDevice, BT>) -> WeakDeviceId<BT>
fn from(id: BaseWeakDeviceId<LoopbackDevice, BT>) -> WeakDeviceId<BT>
Converts to this type from the input type.
Source§impl<BT> From<BaseWeakDeviceId<PureIpDevice, BT>> for WeakDeviceId<BT>where
BT: DeviceLayerTypes,
impl<BT> From<BaseWeakDeviceId<PureIpDevice, BT>> for WeakDeviceId<BT>where
BT: DeviceLayerTypes,
Source§fn from(id: BaseWeakDeviceId<PureIpDevice, BT>) -> WeakDeviceId<BT>
fn from(id: BaseWeakDeviceId<PureIpDevice, BT>) -> WeakDeviceId<BT>
Converts to this type from the input type.
Source§impl<BT> Hash for WeakDeviceId<BT>where
BT: DeviceLayerTypes,
impl<BT> Hash for WeakDeviceId<BT>where
BT: DeviceLayerTypes,
Source§impl<BT> PartialEq<DeviceId<BT>> for WeakDeviceId<BT>where
BT: DeviceLayerTypes,
impl<BT> PartialEq<DeviceId<BT>> for WeakDeviceId<BT>where
BT: DeviceLayerTypes,
Source§impl<BT> PartialEq<WeakDeviceId<BT>> for DeviceId<BT>where
BT: DeviceLayerTypes,
impl<BT> PartialEq<WeakDeviceId<BT>> for DeviceId<BT>where
BT: DeviceLayerTypes,
Source§impl<BT> PartialEq for WeakDeviceId<BT>where
BT: DeviceLayerTypes,
impl<BT> PartialEq for WeakDeviceId<BT>where
BT: DeviceLayerTypes,
Source§impl<L, BC> TcpDemuxContext<Ipv4, WeakDeviceId<BC>, BC> for CoreCtx<'_, BC, L>
impl<L, BC> TcpDemuxContext<Ipv4, WeakDeviceId<BC>, BC> for CoreCtx<'_, BC, L>
Source§type IpTransportCtx<'a> = Locked<&'a StackState<BC>, <TcpDemux<Ipv4> as WrappedLockLevel>::LockLevel>
type IpTransportCtx<'a> = Locked<&'a StackState<BC>, <TcpDemux<Ipv4> as WrappedLockLevel>::LockLevel>
The inner IP transport context.
Source§fn with_demux<O, F: FnOnce(&DemuxState<Ipv4, WeakDeviceId<BC>, BC>) -> O>(
&mut self,
cb: F,
) -> O
fn with_demux<O, F: FnOnce(&DemuxState<Ipv4, WeakDeviceId<BC>, BC>) -> O>( &mut self, cb: F, ) -> O
Calls
f
with non-mutable access to the demux state.Source§fn with_demux_mut<O, F: FnOnce(&mut DemuxState<Ipv4, WeakDeviceId<BC>, BC>) -> O>(
&mut self,
cb: F,
) -> O
fn with_demux_mut<O, F: FnOnce(&mut DemuxState<Ipv4, WeakDeviceId<BC>, BC>) -> O>( &mut self, cb: F, ) -> O
Calls
f
with mutable access to the demux state.Source§impl<L, BC> TcpDemuxContext<Ipv6, WeakDeviceId<BC>, BC> for CoreCtx<'_, BC, L>
impl<L, BC> TcpDemuxContext<Ipv6, WeakDeviceId<BC>, BC> for CoreCtx<'_, BC, L>
Source§type IpTransportCtx<'a> = Locked<&'a StackState<BC>, <TcpDemux<Ipv6> as WrappedLockLevel>::LockLevel>
type IpTransportCtx<'a> = Locked<&'a StackState<BC>, <TcpDemux<Ipv6> as WrappedLockLevel>::LockLevel>
The inner IP transport context.
Source§fn with_demux<O, F: FnOnce(&DemuxState<Ipv6, WeakDeviceId<BC>, BC>) -> O>(
&mut self,
cb: F,
) -> O
fn with_demux<O, F: FnOnce(&DemuxState<Ipv6, WeakDeviceId<BC>, BC>) -> O>( &mut self, cb: F, ) -> O
Calls
f
with non-mutable access to the demux state.Source§fn with_demux_mut<O, F: FnOnce(&mut DemuxState<Ipv6, WeakDeviceId<BC>, BC>) -> O>(
&mut self,
cb: F,
) -> O
fn with_demux_mut<O, F: FnOnce(&mut DemuxState<Ipv6, WeakDeviceId<BC>, BC>) -> O>( &mut self, cb: F, ) -> O
Calls
f
with mutable access to the demux state.Source§impl<L: LockBefore<TcpDemux<Ipv4>>, BC: BindingsContext> TcpDualStackContext<Ipv6, WeakDeviceId<BC>, BC> for CoreCtx<'_, BC, L>
impl<L: LockBefore<TcpDemux<Ipv4>>, BC: BindingsContext> TcpDualStackContext<Ipv6, WeakDeviceId<BC>, BC> for CoreCtx<'_, BC, L>
Source§type DualStackIpTransportCtx<'a> = Locked<&'a StackState<BC>, <TcpDemux<Ipv6> as WrappedLockLevel>::LockLevel>
type DualStackIpTransportCtx<'a> = Locked<&'a StackState<BC>, <TcpDemux<Ipv6> as WrappedLockLevel>::LockLevel>
The inner IP transport context,
Source§fn other_demux_id_converter(&self) -> impl DualStackDemuxIdConverter<Ipv6>
fn other_demux_id_converter(&self) -> impl DualStackDemuxIdConverter<Ipv6>
Gets a converter to get the demux socket ID for the other stack.
Source§fn dual_stack_enabled(&self, ip_options: &Ipv6Options) -> bool
fn dual_stack_enabled(&self, ip_options: &Ipv6Options) -> bool
Gets the enabled state of dual stack operations on the given socket.
Source§fn set_dual_stack_enabled(&self, ip_options: &mut Ipv6Options, value: bool)
fn set_dual_stack_enabled(&self, ip_options: &mut Ipv6Options, value: bool)
Sets the enabled state of dual stack operations on the given socket.
Source§fn with_both_demux_mut<O, F: FnOnce(&mut DemuxState<Ipv6, WeakDeviceId<BC>, BC>, &mut DemuxState<Ipv4, WeakDeviceId<BC>, BC>) -> O>(
&mut self,
cb: F,
) -> O
fn with_both_demux_mut<O, F: FnOnce(&mut DemuxState<Ipv6, WeakDeviceId<BC>, BC>, &mut DemuxState<Ipv4, WeakDeviceId<BC>, BC>) -> O>( &mut self, cb: F, ) -> O
Calls
cb
with mutable access to both demux states.Source§fn into_other_demux_socket_id(
&self,
id: TcpSocketId<I, D, BT>,
) -> <<I as DualStackIpExt>::OtherVersion as DualStackBaseIpExt>::DemuxSocketId<D, BT>
fn into_other_demux_socket_id( &self, id: TcpSocketId<I, D, BT>, ) -> <<I as DualStackIpExt>::OtherVersion as DualStackBaseIpExt>::DemuxSocketId<D, BT>
Turns a
TcpSocketId
into the demuxer ID of the other stack.Source§fn dual_stack_demux_id(
&self,
id: TcpSocketId<I, D, BT>,
) -> DualStackTuple<I, DemuxSocketId<I, D, BT>>
fn dual_stack_demux_id( &self, id: TcpSocketId<I, D, BT>, ) -> DualStackTuple<I, DemuxSocketId<I, D, BT>>
Returns a dual stack tuple with both demux identifiers for
id
.Source§impl<BT> WeakDeviceIdentifier for WeakDeviceId<BT>where
BT: DeviceLayerTypes,
impl<BT> WeakDeviceIdentifier for WeakDeviceId<BT>where
BT: DeviceLayerTypes,
impl<BT> Eq for WeakDeviceId<BT>where
BT: DeviceLayerTypes,
Auto Trait Implementations§
impl<BT> Freeze for WeakDeviceId<BT>
impl<BT> RefUnwindSafe for WeakDeviceId<BT>where
<BT as DeviceLayerStateTypes>::DeviceIdentifier: RefUnwindSafe,
<BT as DeviceLayerStateTypes>::EthernetDeviceState: RefUnwindSafe,
<BT as DeviceLayerStateTypes>::LoopbackDeviceState: RefUnwindSafe,
<BT as DeviceLayerStateTypes>::PureIpDeviceState: RefUnwindSafe,
impl<BT> Send for WeakDeviceId<BT>
impl<BT> Sync for WeakDeviceId<BT>
impl<BT> Unpin for WeakDeviceId<BT>
impl<BT> UnwindSafe for WeakDeviceId<BT>where
<BT as DeviceLayerStateTypes>::DeviceIdentifier: RefUnwindSafe,
<BT as DeviceLayerStateTypes>::EthernetDeviceState: RefUnwindSafe,
<BT as DeviceLayerStateTypes>::LoopbackDeviceState: RefUnwindSafe,
<BT as DeviceLayerStateTypes>::PureIpDeviceState: RefUnwindSafe,
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
🔬This is a nightly-only experimental API. (
clone_to_uninit
)Source§impl<CC, BC, Meta> RecvFrameContext<Meta, BC> for CCwhere
Meta: ReceivableFrameMeta<CC, BC>,
impl<CC, BC, Meta> RecvFrameContext<Meta, BC> for CCwhere
Meta: ReceivableFrameMeta<CC, BC>,
Source§impl<CC, BC, Meta> SendFrameContext<BC, Meta> for CCwhere
Meta: SendableFrameMeta<CC, BC>,
impl<CC, BC, Meta> SendFrameContext<BC, Meta> for CCwhere
Meta: SendableFrameMeta<CC, BC>,
Source§fn send_frame<S>(
&mut self,
bindings_ctx: &mut BC,
metadata: Meta,
frame: S,
) -> Result<(), ErrorAndSerializer<SendFrameErrorReason, S>>where
S: Serializer,
<S as Serializer>::Buffer: BufferMut,
fn send_frame<S>(
&mut self,
bindings_ctx: &mut BC,
metadata: Meta,
frame: S,
) -> Result<(), ErrorAndSerializer<SendFrameErrorReason, S>>where
S: Serializer,
<S as Serializer>::Buffer: BufferMut,
Send a frame. Read more
Source§impl<Id, CC, BC> TimerHandler<BC, Id> for CCwhere
BC: TimerBindingsTypes,
Id: HandleableTimer<CC, BC>,
impl<Id, CC, BC> TimerHandler<BC, Id> for CCwhere
BC: TimerBindingsTypes,
Id: HandleableTimer<CC, BC>,
Source§fn handle_timer(
&mut self,
bindings_ctx: &mut BC,
dispatch: Id,
timer: <BC as TimerBindingsTypes>::UniqueTimerId,
)
fn handle_timer( &mut self, bindings_ctx: &mut BC, dispatch: Id, timer: <BC as TimerBindingsTypes>::UniqueTimerId, )
Handle a timer firing. Read more
Source§impl<L, T> UnlockedAccess<L> for Twhere
L: UnlockedAccessMarkerFor<T>,
impl<L, T> UnlockedAccess<L> for Twhere
L: UnlockedAccessMarkerFor<T>,
Source§type Data = <L as UnlockedAccessMarkerFor<T>>::Data
type Data = <L as UnlockedAccessMarkerFor<T>>::Data
The type of state being accessed.
Source§type Guard<'l> = &'l <L as UnlockedAccessMarkerFor<T>>::Data
where
T: 'l
type Guard<'l> = &'l <L as UnlockedAccessMarkerFor<T>>::Data where T: 'l
A guard providing read access to the data.
Source§fn access(&self) -> <T as UnlockedAccess<L>>::Guard<'_>
fn access(&self) -> <T as UnlockedAccess<L>>::Guard<'_>
How to access the state.