rumpsteak 0.1.0

Session types for asynchronous communication between multiple parties.
Documentation
1
2
3
4
5
6
7
8
9
10
11
12
13
14
pub use rumpsteak_macros::Choice;

use crate::{role::Role, Label, Session, State};

pub trait Internal<'r, R: Role, L>
where
    R::Message: Label<L>,
{
    type Session: Session<'r, R>;
}

pub trait External<'r, R: Role>: Sized {
    fn choice(state: State<'r, R>, message: R::Message) -> Option<Self>;
}