/// Send a value of type `T` from C to B. Always succeeds. Returns the continuation of the
/// `SessionMpst<S1, S2, R>`.
Send a value of type `T` from C to B. Always succeeds. Returns the continuation of the
`SessionMpst`.
Send a value of type ` T ` from C to B . Always succeeds . Returns the continuation of the ` SessionMpst ` .
pub fn send_mpst_c_to_b<T, S1, S2, R>(
    x: T,
    s: SessionMpst<S1, Send<T, S2>, RoleB<R>, RoleC<RoleEnd>>,
) -> SessionMpst<S1, S2, R, RoleC<RoleEnd>>
where
    T: marker::Send,
    S1: Session,
    S2: Session,
    R: Role,
{
    let new_session = send(x, s.session2);
    let new_queue = next_b(s.stack);
    SessionMpst {
        session1: s.session1,
        session2: new_session,
        stack: new_queue,
        name: s.name,
    }
}
pub fn send_mpst_c_to_b < T , S1 , S2 , R > ( x : T , s : SessionMpst < S1 , Send < T , S2 > , RoleB < R > , RoleC < RoleEnd > > , ) -> SessionMpst < S1 , S2 , R , RoleC < RoleEnd > > where T : marker :: Send , S1 : Session , S2 : Session , R : Role , { let new_session = send ( x , s . session2 ) ; let new_queue = next_b ( s . stack ) ; SessionMpst { session1 : s . session1 , session2 : new_session , stack : new_queue , name : s . name , } }
Send a value of type `T` from C to B.
Send a value of type ` T ` from C to B .
x
T
s
SessionMpst<S1, Send<T, S2>, RoleB<R>, RoleC<RoleEnd>>