rust_class/lib.rs
1#[macro_export]
2macro_rules! class {
3 ($(class $name:ident {[$($param_type:ident $param:ident)*]; $($fn_return:ident $fname:ident ($($arg:tt)*) {$($block:tt)*})*})*) => {
4 $(struct $name {
5 $(
6 pub $param: $param_type,
7 )*
8 }
9 impl $name {
10 $(pub fn $fname ($($arg)*) -> $fn_return {
11 $($block)*
12 })*
13 })*
14 }
15}