Skip to main content

mesh_llm_runtime_event_contracts/
lib.rs

1//! Producer-facing runtime-event contracts.
2
3macro_rules! event_family {
4    ($name:ident { $($variant:ident => $id:literal),+ $(,)? }) => {
5        #[derive(Clone, Copy, Debug, Eq, PartialEq)]
6        pub enum $name {
7            $($variant),+
8        }
9
10        impl $name {
11            pub const ALL: &'static [Self] = &[$(Self::$variant),+];
12
13            #[must_use]
14            pub const fn as_str(self) -> &'static str {
15                match self {
16                    $(Self::$variant => $id),+
17                }
18            }
19        }
20    };
21}
22
23mod carrier;
24mod delivery;
25mod fact_data;
26mod facts;
27mod families;
28mod identity;
29mod ingress;
30mod native;
31
32pub use carrier::*;
33pub use delivery::*;
34pub use fact_data::*;
35pub use facts::*;
36pub use families::*;
37pub use identity::*;
38pub use ingress::*;
39pub use native::*;
40
41#[cfg(test)]
42mod tests;