Struct canadensis::TransferHandlerChain
source · pub struct TransferHandlerChain<H0, H1> { /* private fields */ }
Expand description
Combines two transfer handlers
Implementations§
source§impl<H0, H1> TransferHandlerChain<H0, H1>
impl<H0, H1> TransferHandlerChain<H0, H1>
sourcepub fn new(handler0: H0, handler1: H1) -> Self
pub fn new(handler0: H0, handler1: H1) -> Self
Creates a handler chain
Each incoming transfer will be passed to handler 0 first. If handler 0 does not handle the transfer, the transfer will be passed to handler 1.
sourcepub fn first_mut(&mut self) -> &mut H0
pub fn first_mut(&mut self) -> &mut H0
Returns a mutable reference to the first handler in this chain
sourcepub fn second_mut(&mut self) -> &mut H1
pub fn second_mut(&mut self) -> &mut H1
Returns a mutable reference to the second handler in this chain
sourcepub fn into_inner(self) -> (H0, H1)
pub fn into_inner(self) -> (H0, H1)
Splits this chain into its inner handlers
Trait Implementations§
source§impl<I, T, H0, H1> TransferHandler<I, T> for TransferHandlerChain<H0, H1>where
I: Instant,
T: Transport,
H0: TransferHandler<I, T>,
H1: TransferHandler<I, T>,
impl<I, T, H0, H1> TransferHandler<I, T> for TransferHandlerChain<H0, H1>where I: Instant, T: Transport, H0: TransferHandler<I, T>, H1: TransferHandler<I, T>,
source§fn handle_message<N: Node<Instant = I, Transport = T>>(
&mut self,
node: &mut N,
transfer: &MessageTransfer<Vec<u8>, I, T>
) -> bool
fn handle_message<N: Node<Instant = I, Transport = T>>( &mut self, node: &mut N, transfer: &MessageTransfer<Vec<u8>, I, T> ) -> bool
Potentially handles an incoming message transfer Read more
source§fn handle_request<N: Node<Instant = I, Transport = T>>(
&mut self,
node: &mut N,
token: ResponseToken<T>,
transfer: &ServiceTransfer<Vec<u8>, I, T>
) -> bool
fn handle_request<N: Node<Instant = I, Transport = T>>( &mut self, node: &mut N, token: ResponseToken<T>, transfer: &ServiceTransfer<Vec<u8>, I, T> ) -> bool
Potentially handles an incoming service request Read more
source§fn handle_response<N: Node<Instant = I, Transport = T>>(
&mut self,
node: &mut N,
transfer: &ServiceTransfer<Vec<u8>, I, T>
) -> bool
fn handle_response<N: Node<Instant = I, Transport = T>>( &mut self, node: &mut N, transfer: &ServiceTransfer<Vec<u8>, I, T> ) -> bool
Potentially handles an incoming service response Read more
source§fn handle_loopback<N: Node<Instant = I, Transport = T>>(
&mut self,
node: &mut N,
transfer: &Transfer<Vec<u8>, I, T>
) -> bool
fn handle_loopback<N: Node<Instant = I, Transport = T>>( &mut self, node: &mut N, transfer: &Transfer<Vec<u8>, I, T> ) -> bool
Potentially handles a loopback transfer sent from this node Read more
source§fn chain<H>(self, next: H) -> TransferHandlerChain<Self, H>where
Self: Sized,
H: TransferHandler<I, T>,
fn chain<H>(self, next: H) -> TransferHandlerChain<Self, H>where Self: Sized, H: TransferHandler<I, T>,
Chains another handler after this handler and returns the combined handler Read more
Auto Trait Implementations§
impl<H0, H1> RefUnwindSafe for TransferHandlerChain<H0, H1>where H0: RefUnwindSafe, H1: RefUnwindSafe,
impl<H0, H1> Send for TransferHandlerChain<H0, H1>where H0: Send, H1: Send,
impl<H0, H1> Sync for TransferHandlerChain<H0, H1>where H0: Sync, H1: Sync,
impl<H0, H1> Unpin for TransferHandlerChain<H0, H1>where H0: Unpin, H1: Unpin,
impl<H0, H1> UnwindSafe for TransferHandlerChain<H0, H1>where H0: UnwindSafe, H1: UnwindSafe,
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