hit_data/
macros.rs

1#[macro_export]
2macro_rules! modele {
3    (
4        $model_name:literal,
5        $model_label:literal
6         =>
7            $(
8                $field_name:literal: $field:ident $({
9                    $($key: ident: $value: expr ),*$(,)?
10                })?
11            ),*
12            $(,interfaces: $($interfaces: literal),*)?
13            $(,)?
14    ) => {
15        {
16            let mut mdl: $crate::Model = $crate::Model::new(
17                String::from($model_name),
18                String::from($model_label),
19            );
20            $($(mdl.fields.insert(
21                String::from($field_name),
22                std::rc::Rc::new(std::cell::RefCell::new($field {
23                    name: String::from($field_name),
24                    $($key: $value,)*
25                    ..Default::default()
26                }))
27            );)*)?
28            $($(mdl.interfaces.push(String::from($interfaces));),*)?
29            std::rc::Rc::new(mdl)
30        }
31    }
32}