tytix/crates/tytix-core/src/macros.rs
Marcel Müller d38b04396c Add Actor interface
This is the early idea. The error message is still not great if the
HandledMessages don't fit the Actor. (Aka forgot to impl Handle>

Signed-off-by: Marcel Müller <neikos@neikos.email>
2025-11-05 14:21:38 +01:00

43 lines
1.8 KiB
Rust

#[rustfmt::skip]
macro_rules! all_the_tuples {
($name:ident) => {
$name!(M1);
$name!(M1, M2);
$name!(M1, M2, M3);
$name!(M1, M2, M3, M4);
$name!(M1, M2, M3, M4, M5);
$name!(M1, M2, M3, M4, M5, M6);
$name!(M1, M2, M3, M4, M5, M6, M7);
$name!(M1, M2, M3, M4, M5, M6, M7, M8);
$name!(M1, M2, M3, M4, M5, M6, M7, M8, M9);
$name!(M1, M2, M3, M4, M5, M6, M7, M8, M9, M10);
$name!(M1, M2, M3, M4, M5, M6, M7, M8, M9, M10, M11);
$name!(M1, M2, M3, M4, M5, M6, M7, M8, M9, M10, M11, M12);
$name!(M1, M2, M3, M4, M5, M6, M7, M8, M9, M10, M11, M12, M13);
$name!(M1, M2, M3, M4, M5, M6, M7, M8, M9, M10, M11, M12, M13, M14);
$name!(M1, M2, M3, M4, M5, M6, M7, M8, M9, M10, M11, M12, M13, M14, M15);
$name!(M1, M2, M3, M4, M5, M6, M7, M8, M9, M10, M11, M12, M13, M14, M15, M16);
};
}
#[rustfmt::skip]
macro_rules! all_the_tuples_special_first {
($name:ident) => {
$name!([], M1);
$name!([M1], M2);
$name!([M1, M2], M3);
$name!([M1, M2, M3], M4);
$name!([M1, M2, M3, M4], M5);
$name!([M1, M2, M3, M4, M5], M6);
$name!([M1, M2, M3, M4, M5, M6], M7);
$name!([M1, M2, M3, M4, M5, M6, M7], M8);
$name!([M1, M2, M3, M4, M5, M6, M7, M8], M9);
$name!([M1, M2, M3, M4, M5, M6, M7, M8, M9], M10);
$name!([M1, M2, M3, M4, M5, M6, M7, M8, M9, M10], M11);
$name!([M1, M2, M3, M4, M5, M6, M7, M8, M9, M10, M11], M12);
$name!([M1, M2, M3, M4, M5, M6, M7, M8, M9, M10, M11, M12], M13);
$name!([M1, M2, M3, M4, M5, M6, M7, M8, M9, M10, M11, M12, M13], M14);
$name!([M1, M2, M3, M4, M5, M6, M7, M8, M9, M10, M11, M12, M13, M14], M15);
$name!([M1, M2, M3, M4, M5, M6, M7, M8, M9, M10, M11, M12, M13, M14, M15], M16);
};
}