pub fn offer_mpst_session_to_c_from_a<'a, S1, S2, S3, S4, S5, F, G, R1, R2, U>(
    s: MeshedChannels<OfferMpst<S1, S2, S3, S4, R1, R2, NameC>, S5, RoleAlltoA<RoleEnd, RoleEnd>, NameC>,
    f: F,
    g: G
) -> Result<U, Box<dyn Error + 'a>>
where S1: Session, S2: Session, S3: Session, S4: Session, S5: Session, R1: Role, R2: Role, F: FnOnce(MeshedChannels<S1, S2, R1, NameC>) -> Result<U, Box<dyn Error + 'a>>, G: FnOnce(MeshedChannels<S3, S4, R2, NameC>) -> Result<U, Box<dyn Error + 'a>>,
Expand description

Offer a choice to A from C (on its session field related to C) between two MeshedChannels, MeshedChannels<S1, S2, R1, N1> and MeshedChannels<S3, S4, R2, N2>.

§Example

// Please check the tests usecase

offer_mpst_session_to_c_from_a(
   s,
   |s: EndpointCRecv<i32>| {
       let (request, s) = recv_mpst_c_from_a(s)?;
       close_mpst(s)
   },
   |s: EndpointCEnd| {
       close_mpst(s)
   },
)