pub enum FakeCtxNetworkSpec {}Expand description
The fake network spec to use in integration tests.
It creates an Ethernet network.
Trait Implementations§
Source§impl FakeNetworkSpec for FakeCtxNetworkSpec
impl FakeNetworkSpec for FakeCtxNetworkSpec
Source§type Context = CtxPair<StackState<FakeBindingsCtx>, FakeBindingsCtx>
type Context = CtxPair<StackState<FakeBindingsCtx>, FakeBindingsCtx>
The context type, which represents a node in the network.
Source§type TimerId = TimerId<FakeBindingsCtx>
type TimerId = TimerId<FakeBindingsCtx>
The type of timer IDs handled by
Self::Context.Source§type SendMeta = DispatchedFrame
type SendMeta = DispatchedFrame
The type of metadata associated with frames sent by this nodes in the
network.
Source§type RecvMeta = BaseDeviceId<EthernetLinkDevice, FakeBindingsCtx>
type RecvMeta = BaseDeviceId<EthernetLinkDevice, FakeBindingsCtx>
The type of metadata associated with frames received by nodes in the
network.
Source§fn handle_frame(
ctx: &mut FakeCtx,
device_id: Self::RecvMeta,
data: Buf<Vec<u8>>,
)
fn handle_frame( ctx: &mut FakeCtx, device_id: Self::RecvMeta, data: Buf<Vec<u8>>, )
Handles a single received frame by
ctx.Source§fn handle_timer(ctx: &mut FakeCtx, dispatch: Self::TimerId, timer: FakeTimerId)
fn handle_timer(ctx: &mut FakeCtx, dispatch: Self::TimerId, timer: FakeTimerId)
Handles a single timer id in
ctx. Read moreSource§fn process_queues(ctx: &mut FakeCtx) -> bool
fn process_queues(ctx: &mut FakeCtx) -> bool
Processes any context-internal queues, returning
true if any work
was done. Read moreSource§fn fake_frames(
ctx: &mut FakeCtx,
) -> &mut impl WithFakeFrameContext<Self::SendMeta>
fn fake_frames( ctx: &mut FakeCtx, ) -> &mut impl WithFakeFrameContext<Self::SendMeta>
Extracts accesses to fake frames from
Self::Context.Source§fn new_network<CtxId, Links, I>(
contexts: I,
links: Links,
) -> FakeNetwork<Self, CtxId, Links>where
CtxId: Eq + Hash + Copy + Debug,
I: IntoIterator<Item = (CtxId, Self::Context)>,
Links: FakeNetworkLinks<Self::SendMeta, Self::RecvMeta, CtxId>,
fn new_network<CtxId, Links, I>(
contexts: I,
links: Links,
) -> FakeNetwork<Self, CtxId, Links>where
CtxId: Eq + Hash + Copy + Debug,
I: IntoIterator<Item = (CtxId, Self::Context)>,
Links: FakeNetworkLinks<Self::SendMeta, Self::RecvMeta, CtxId>,
Creates a new fake network from this spec.
Auto Trait Implementations§
impl Freeze for FakeCtxNetworkSpec
impl RefUnwindSafe for FakeCtxNetworkSpec
impl Send for FakeCtxNetworkSpec
impl Sync for FakeCtxNetworkSpec
impl Unpin for FakeCtxNetworkSpec
impl UnwindSafe for FakeCtxNetworkSpec
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
§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<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.