pub struct StubbornLink<M> { /* private fields */ }Expand description
Retransmits until told to stop.
Adds nothing to the wire: what it transmits is exactly the payload it was given. That is why a three-layer stack built on it carries only one header.
Implementations§
Trait Implementations§
Source§impl<M: Debug> Debug for StubbornLink<M>
impl<M: Debug> Debug for StubbornLink<M>
Source§impl<M: Clone> Protocol for StubbornLink<M>
impl<M: Clone> Protocol for StubbornLink<M>
Source§type Scope = Infallible
type Scope = Infallible
No scope conditions: this protocol’s guarantees do not lapse.
Source§type Meta = Infallible
type Meta = Infallible
Keeps nothing durably: a crash loses everything this protocol knows.
Source§type Entry = Infallible
type Entry = Infallible
The durable entries this protocol appends: what accumulates.
Source§fn on_cmd(&mut self, cmd: Cmd<M>, cx: &mut ProtoCx<'_, Self>)
fn on_cmd(&mut self, cmd: Cmd<M>, cx: &mut ProtoCx<'_, Self>)
Handle a request from the layer above.
Source§fn on_msg(&mut self, from: NodeId, msg: M, cx: &mut ProtoCx<'_, Self>)
fn on_msg(&mut self, from: NodeId, msg: M, cx: &mut ProtoCx<'_, Self>)
Handle a message received from
from.Source§fn on_timer(&mut self, id: TimerId, cx: &mut ProtoCx<'_, Self>)
fn on_timer(&mut self, id: TimerId, cx: &mut ProtoCx<'_, Self>)
Handle a timer that fired somewhere in this protocol or in what it composes. Read more
§fn on_init(
&mut self,
_cx: &mut Cx<'_, Self::Msg, Self::Ind, Self::Note, Self::Meta, Self::Entry>,
)
fn on_init( &mut self, _cx: &mut Cx<'_, Self::Msg, Self::Ind, Self::Note, Self::Meta, Self::Entry>, )
Begin, on a first start — when nothing has been written down. Read more
§fn on_recovery(
&mut self,
_cx: &mut Cx<'_, Self::Msg, Self::Ind, Self::Note, Self::Meta, Self::Entry>,
)
fn on_recovery( &mut self, _cx: &mut Cx<'_, Self::Msg, Self::Ind, Self::Note, Self::Meta, Self::Entry>, )
Resume after a crash, reading what survived. Read more
§fn on_scope_event(
&mut self,
_scope: Self::Scope,
_cx: &mut Cx<'_, Self::Msg, Self::Ind, Self::Note, Self::Meta, Self::Entry>,
)
fn on_scope_event( &mut self, _scope: Self::Scope, _cx: &mut Cx<'_, Self::Msg, Self::Ind, Self::Note, Self::Meta, Self::Entry>, )
Handle a boundary of a scope this protocol’s guarantees depend on — its end, or the
beginning of the one that succeeds it. Read more
Auto Trait Implementations§
impl<M> Freeze for StubbornLink<M>
impl<M> RefUnwindSafe for StubbornLink<M>where
M: RefUnwindSafe,
impl<M> Send for StubbornLink<M>where
M: Send,
impl<M> Sync for StubbornLink<M>where
M: Sync,
impl<M> Unpin for StubbornLink<M>
impl<M> UnsafeUnpin for StubbornLink<M>
impl<M> UnwindSafe for StubbornLink<M>where
M: 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