/// Receive a broadcasted value of type `T` on C from A. Can fail. Returns either a pair of the received
/// value and the continuation of the `SessionMpst<S1, S2, R>` or an error.
Receive a broadcasted value of type `T` on C from A. Can fail. Returns either a pair of the received
value and the continuation of the `SessionMpst` or an error.
Receive a broadcasted value of type ` T ` on C from A . Can fail . Returns either a pair of the received value and the continuation of the ` SessionMpst ` or an error .
pub fn recv_mpst_b_all_to_c<T, S1, S2, R, N>(
    s: SessionMpst<S1, Recv<T, S2>, RoleAlltoC<R, R>, N>,
) -> ResultBoxError<T, S1, S2, R, N>
where
    T: marker::Send,
    S1: Session,
    S2: Session,
    R: Role,
    N: Role,
{
    let (v, new_session) = recv(s.session2)?;
    let (new_queue, _) = next_all_to_c(s.stack);
    let result = SessionMpst {
        session1: s.session1,
        session2: new_session,
        stack: new_queue,
        name: s.name,
    };
    Ok((v, result))
}
pub fn recv_mpst_b_all_to_c < T , S1 , S2 , R , N > ( s : SessionMpst < S1 , Recv < T , S2 > , RoleAlltoC < R , R > , N > , ) -> ResultBoxError < T , S1 , S2 , R , N > where T : marker :: Send , S1 : Session , S2 : Session , R : Role , N : Role , { let ( v , new_session ) = recv ( s . session2 ) ? ; let ( new_queue , _ ) = next_all_to_c ( s . stack ) ; let result = SessionMpst { session1 : s . session1 , session2 : new_session , stack : new_queue , name : s . name , } ; Ok ( ( v , result ) ) }
Receive a broadcasted value of type `T` on C from A.
Receive a broadcasted value of type ` T ` on C from A .
s
SessionMpst<S1, Recv<T, S2>, RoleAlltoC<R, R>, N>