Macro mpstthree::create_fn_choose_mpst_multi_to_all_bundle [−][src]
macro_rules! create_fn_choose_mpst_multi_to_all_bundle { ($($fn_name : ident,) + => $($branch : expr,) + => $($new_type : ty,) + => $($label : path,) + => $($receiver : ident,) + => $sender : ident, $meshedchannels_name : ident, $exclusion : literal) => { ... }; }
Expand description
Create choose fuunctions, to choose among different sessions that are provided.
Arguments
- The name of the new functions
- The name of the branches, need to be the same for every participants
- The new type adopted by the sender
- The name of the Enum containing the branches
- The different passive roles
- The name of the sender
- The name of the MeshedChannels type that will be used
- The index of the sender among all participants
Example
Available on the long_simple_three_mpst_short examples.
ⓘ
type EndpointDoneC = MeshedChannelsThree<End, End, RoleEnd, NameC>; type EndpointMoreC = MeshedChannelsThree< Send<(), Recv<(), Choose0fromCtoA>>, Send<(), Recv<(), Choose0fromCtoB>>, R2A<R2B<RoleA<RoleB<RoleEnd>>>>, NameC, >; create_fn_choose_mpst_multi_to_all_bundle!( done_from_c_to_all, more_from_c_to_all, => Done, More, => EndpointDoneC, EndpointMoreC, => Branching0fromCtoA, Branching0fromCtoB, => RoleA, RoleB, => RoleC, MeshedChannelsThree, 3 );