macro_rules! create_offer_mpst_session_multi {
    (
        $func_name:ident,
        $type_name:ident,
        $role:ident,
        $name:ident,
        $meshedchannels_name:ident,
        $n_sessions:literal,
        $exclusion:literal
    ) => { ... };
}
Available on crate feature macros_multiple only.
Expand description

Creates an OfferMpst function to receive an offer on a given binary session type of a MeshedChannels.

Arguments

  • The name of the new OfferMpst function
  • The name of the OfferMpst type that will be used
  • The name of the dual of the broadcasting sender. This one should contain toAll according to the convention
  • The name of the recv function that is related
  • The name of the receiver
  • The name of the MeshedChannels type that will be used
  • The number of participants (all together)
  • The index of the binary session type that will receive in the MeshedChannels for this specific role. Index starts at 1.

Example

use mpstthree::{
    create_broadcast_role, create_meshedchannels, create_normal_role,
    create_offer_mpst_session_multi, create_offer_type_multi,
};

create_normal_role!(RoleB, RoleBDual);
create_broadcast_role!(RoleAlltoD, RoleDtoAll);

create_meshedchannels!(MeshedChannels, 3);
create_offer_type_multi!(OfferMpstThree, MeshedChannels, 3);

create_offer_mpst_session_multi!(
    offer_mpst_session_b_to_d,
    OfferMpstThree,
    RoleAlltoD,
    RoleB,
    MeshedChannels,
    3,
    2
);

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