pub enum WeakDeviceId<BT>where
BT: DeviceLayerTypes,{
Ethernet(BaseWeakDeviceId<EthernetLinkDevice, BT>),
Loopback(BaseWeakDeviceId<LoopbackDevice, BT>),
PureIp(BaseWeakDeviceId<PureIpDevice, BT>),
Blackhole(BaseWeakDeviceId<BlackholeDevice, 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>)
Blackhole(BaseWeakDeviceId<BlackholeDevice, 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 duplicate 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<BlackholeDevice, BT>> for WeakDeviceId<BT>where
BT: DeviceLayerTypes,
impl<BT> From<BaseWeakDeviceId<BlackholeDevice, BT>> for WeakDeviceId<BT>where
BT: DeviceLayerTypes,
Source§fn from(id: BaseWeakDeviceId<BlackholeDevice, BT>) -> WeakDeviceId<BT>
fn from(id: BaseWeakDeviceId<BlackholeDevice, BT>) -> WeakDeviceId<BT>
Converts to this type from the input type.
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,
<BT as DeviceLayerStateTypes>::BlackholeDeviceState: 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,
<BT as DeviceLayerStateTypes>::BlackholeDeviceState: 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,
§impl<T, D> Encode<Ambiguous1, D> for Twhere
D: ResourceDialect,
impl<T, D> Encode<Ambiguous1, D> for Twhere
D: ResourceDialect,
§impl<T, D> Encode<Ambiguous2, D> for Twhere
D: ResourceDialect,
impl<T, D> Encode<Ambiguous2, D> for Twhere
D: ResourceDialect,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key and return true if they are equal.Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more§impl<T> Pointable for T
impl<T> Pointable for T
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>>
fn send_frame<S>( &mut self, bindings_ctx: &mut BC, metadata: Meta, frame: S, ) -> Result<(), ErrorAndSerializer<SendFrameErrorReason, S>>
Send a frame. Read more
Source§impl<BC, S, Meta, DeviceId> SendableFrameMeta<FakeCoreCtx<S, Meta, DeviceId>, BC> for Meta
impl<BC, S, Meta, DeviceId> SendableFrameMeta<FakeCoreCtx<S, Meta, DeviceId>, BC> for Meta
Source§fn send_meta<SS>(
self,
core_ctx: &mut FakeCoreCtx<S, Meta, DeviceId>,
bindings_ctx: &mut BC,
frame: SS,
) -> Result<(), ErrorAndSerializer<SendFrameErrorReason, SS>>
fn send_meta<SS>( self, core_ctx: &mut FakeCoreCtx<S, Meta, DeviceId>, bindings_ctx: &mut BC, frame: SS, ) -> Result<(), ErrorAndSerializer<SendFrameErrorReason, SS>>
Sends this frame metadata to the provided contexts.
Source§impl<Meta, BC> SendableFrameMeta<FakeFrameCtx<Meta>, BC> for Meta
impl<Meta, BC> SendableFrameMeta<FakeFrameCtx<Meta>, BC> for Meta
Source§fn send_meta<S>(
self,
core_ctx: &mut FakeFrameCtx<Meta>,
_bindings_ctx: &mut BC,
frame: S,
) -> Result<(), ErrorAndSerializer<SendFrameErrorReason, S>>
fn send_meta<S>( self, core_ctx: &mut FakeFrameCtx<Meta>, _bindings_ctx: &mut BC, frame: S, ) -> Result<(), ErrorAndSerializer<SendFrameErrorReason, S>>
Sends this frame metadata to the provided contexts.
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.