#[macro_export]
#[cfg_attr(doc_cfg, doc(cfg(feature = "baking")))]
macro_rules! generate {
(
"basic",
$meshedchannels_name: ident,
$( $all_roles: ident ),+ $(,)?
) => {
mpst_seq_proc::baking!(
$meshedchannels_name ,
$( $all_roles , )+
);
};
(
"recursive",
$meshedchannels_name: ident,
$( $all_roles: ident ),+ $(,)?
) => {
mpst_seq_proc::baking_with_enum!(
$meshedchannels_name ,
$( $all_roles , )+
);
};
(
"cancel",
$meshedchannels_name: ident,
$( $all_roles: ident ),+ $(,)?
) => {
mpst_seq_proc::baking_with_cancel!(
$meshedchannels_name ,
$( $all_roles , )+
);
};
(
"rec_and_cancel",
$meshedchannels_name: ident,
$( $all_roles: ident ),+ $(,)?
) => {
mpst_seq_proc::baking_with_enum_and_cancel!(
$meshedchannels_name ,
$( $all_roles , )+
);
};
(
"interleaved",
$meshedchannels_name_one: ident,
$( $all_roles_one: ident , )+
$index_tuple_one: literal,
$meshedchannels_name_two: ident,
$( $all_roles_two: ident , )+
$index_tuple_two: literal,
$func_name: ident
) => {
mpst_seq_proc::baking_interleaved_with_enum_and_cancel!(
$meshedchannels_name_one ,
( $( ( $all_roles_one ) )+ ) ,
$index_tuple_one ,
$meshedchannels_name_two ,
( $( ( $all_roles_two ) )+ ) ,
$index_tuple_two ,
$func_name
);
};
(
"atmp_interleaved",
$meshedchannels_name_one: ident,
$( $all_roles_one: ident , )+
$index_tuple_one: literal,
$meshedchannels_name_two: ident,
$( $all_roles_two: ident , )+
$index_tuple_two: literal,
$func_name: ident
) => {
mpst_seq_proc::baking_atmp_interleaved_with_enum_and_cancel!(
$meshedchannels_name_one ,
( $( ( $all_roles_one ) )+ ) ,
$index_tuple_one ,
$meshedchannels_name_two ,
( $( ( $all_roles_two ) )+ ) ,
$index_tuple_two ,
$func_name
);
};
}