Files
osui/src/macros.rs
T
2025-06-26 07:13:41 +02:00

38 lines
864 B
Rust

#[macro_export]
macro_rules! event {
($name:ident) => {
#[derive(Debug, Clone)]
pub struct $name;
impl $crate::events::Event for $name {
fn as_any(self: Box<Self>) -> Box<dyn std::any::Any> {
self
}
}
};
($name:ident {$($inner:tt)*}) => {
#[derive(Debug, Clone)]
pub struct $name {
$($inner)*
}
impl $crate::events::Event for $name {
fn as_any(self: Box<Self>) -> Box<dyn std::any::Any> {
self
}
}
};
($name:ident ($($inner:tt)*)) => {
#[derive(Debug, Clone)]
pub struct $name ($($inner)*);
impl $crate::events::Event for $name {
fn as_any(self: Box<Self>) -> Box<dyn std::any::Any> {
self
}
}
};
}