Struct nemo::Channel
[−]
[src]
pub struct Channel<P: Protocol, I, E: SessionType, S: SessionType> { pub proto: P, // some fields omitted }
Channels are provided to handlers to act as a "courier" for the session type and a guard for the IO backend.
Fields
proto: P
Methods
impl<I, E: SessionType, S: SessionType, P: Handler<I, E, S>> Channel<P, I, E, S>
[src]
fn defer(self) -> Defer<P, I>
Defer the rest of the protocol execution. Useful for returning early.
There must be a Handler
implemented for the protocol state you're deferring.
impl<I: IO, E: SessionType, P: Protocol> Channel<P, I, E, End>
[src]
impl<I: Transfers<T>, T, E: SessionType, S: SessionType, P: Protocol> Channel<P, I, E, Send<T, S>>
[src]
impl<I: Transfers<T>, T, E: SessionType, S: SessionType, P: Protocol> Channel<P, I, E, Recv<T, S>>
[src]
impl<I, E: SessionType, S: SessionType, P: Protocol> Channel<P, I, E, Nest<S>>
[src]
impl<I, N: Peano, E: SessionType + Pop<N>, P: Protocol> Channel<P, I, E, Escape<N>>
[src]
impl<I: IO, E: SessionType, R: SessionType, P: Protocol> Channel<P, I, E, R>
[src]
fn choose<S: SessionType>(self) -> Channel<P, I, E, S> where
R: Chooser<S>,
R: Chooser<S>,
Select a protocol to advance to.