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>;
}