Function mpstthree::functionmpst::choose::choose_left_mpst_session_b_to_all [−][src]
pub fn choose_left_mpst_session_b_to_all<'a, S0, S1, S2, S3, S4, S5, R0, R1, R2, R3, R4, R5>(
s: MeshedChannels<ChooseMpst<S2, S0, S4, S1, R0, R1, RoleADual<RoleEnd>>, ChooseMpst<<S0 as Session>::Dual, <<S3 as Session>::Dual as Session>::Dual, <S1 as Session>::Dual, <<S5 as Session>::Dual as Session>::Dual, R2, R3, RoleCDual<RoleEnd>>, RoleBtoAll<R4, R5>, RoleB<RoleEnd>>
) -> MeshedChannels<S2, S3, R4, RoleB<RoleEnd>> where
S0: Session + 'a,
S1: Session + 'a,
S2: Session + 'a,
S3: Session + 'a,
S4: Session + 'a,
S5: Session + 'a,
R0: Role + 'a,
R1: Role + 'a,
R2: Role + 'a,
R3: Role + 'a,
R4: Role + 'a,
R5: Role + 'a,
Expand description
Given a choice from B, to other processes, between two
MeshedChannels
, choose the
first option for each.
B has to encapsulate all possible
MeshedChannels
for each other
role. This function creates the 6 new binary
Session
, the 3 new
Role
related to each first option
then the related [mpstthree::meshedchannels:: MeshedChannels
]. It then sends those options to the
related processes.
-
S0: dual session from A to C on left branch
-
S1: dual session from A to C on right branch
-
S2: session from B to A on left branch
-
S3: session from B to C on left branch
-
S4: session from B to A on right branch
-
S5: session from B to C on right branch
-
R0: dual stack of A on left branch
-
R1: dual stack of A on right branch
-
R2: dual stack of C on left branch
-
R3: dual stack of C on right branch
-
R4: stack of B on left branch
-
R5: stack of B on right branch