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}