macro_rules! create_choose_both_from_2_to_1_and_3 {
    (
        $func_name_right:ident,
        $func_name_left:ident,
        $name_receiver_1:ident,
        $name_receiver_2:ident,
        $role_broadcast:ident,
        $name_sender:ident
    ) => { ... };
}
Available on crate feature macros_simple only.
Expand description

Call both create_choose_right_from_2_to_1_and_3 and create_choose_left_from_2_to_1_and_3. Must be used with MeshedChannels.

§Arguments

  • The name of the new right ChooseMpst function
  • The name of the new left ChooseMpst function
  • The name of the dual of the first receiver
  • The name of the dual of the second receiver
  • The name of the broadcasting sender. This one should contain toAll according to the convention
  • The name of the sender

§Example

use mpstthree::{
    create_multiple_normal_role, create_broadcast_role,
    create_choose_both_from_2_to_1_and_3, create_multiple_normal_name
};

create_multiple_normal_role!(
    RoleA, RoleADual |
    RoleB, RoleBDual |
    RoleC, RoleCDual |
);

create_multiple_normal_name!(
    NameA,
    NameB,
    NameC
);

create_broadcast_role!(RoleAlltoB, RoleBtoAll);

create_choose_both_from_2_to_1_and_3!(
    choose_right_mpst_session_b_to_all,
    choose_left_mpst_session_b_to_all,
    NameA,
    NameC,
    RoleBtoAll,
    NameB
);

This macro is available only if MultiCrusty is built with the "macros_simple" feature.