Skip to main content

wpl/
macro_def.rs

1#[macro_export]
2macro_rules! derive_base_prs {
3    ($name:ident) => {
4        #[derive(Debug, Default)]
5        #[allow(dead_code)]
6        pub struct $name {}
7        /*
8        impl $crate::engine::field::parse_def::FieldConfAble for $name
9        where
10            Self: $crate::engine::field::BaseAble,
11        {
12            fn meta(&self) -> wp_model_core::model::meta::Meta {
13                self.base().field_conf.meta_type.clone()
14            }
15            fn conf(&self) -> &$crate::core::WPLField {
16                &self.base().field_conf
17            }
18            fn use_conf(&mut self, conf: $crate::core::WPLField) {
19                self.mut_base().field_conf = conf;
20            }
21        }
22
23         */
24    };
25
26    ($name:ident, $patten_first: expr) => {
27        #[derive(Debug)]
28        #[allow(dead_code)]
29        pub struct $name {
30            base: $crate::engine::field::BasePRS,
31        }
32
33        impl $name {
34            fn name_tag(&self) -> &str {
35                stringify!($name)
36            }
37        }
38
39        impl $crate::engine::field::BaseAble for $name {
40            fn name(&self) -> &str {
41                self.name_tag()
42            }
43
44            fn base(&self) -> &$crate::engine::field::BasePRS {
45                &self.base
46            }
47            fn mut_base(&mut self) -> &mut $crate::engine::field::BasePRS {
48                &mut self.base
49            }
50        }
51        impl $crate::compat::New1<$crate::core::WPLField> for $name {
52            fn new(mut conf: $crate::core::WPLField) -> Self {
53                if conf.fmt_conf.patten_first.is_none() {
54                    conf.fmt_conf.patten_first = Some($patten_first);
55                };
56                Self {
57                    base: $crate::engine::field::BasePRS::new(conf),
58                }
59            }
60        }
61        /*
62        impl $crate::engine::field::parse_def::FieldConfAble for $name
63        where
64            Self: $crate::engine::field::BaseAble,
65        {
66            fn meta(&self) -> wp_model_core::model::meta::Meta {
67                self.base().field_conf.meta_type.clone()
68            }
69            fn conf(&self) -> &$crate::core::WPLField {
70                &self.base().field_conf
71            }
72            fn use_conf(&mut self, conf: $crate::core::WPLField) {
73                self.mut_base().field_conf = conf;
74            }
75        }
76
77         */
78    };
79}
80
81#[macro_export]
82macro_rules! over_loop_check {
83    ($var:expr,$max:expr) => {
84        if $var > $max {
85            break;
86        }
87        $var += 1;
88    };
89}
90#[macro_export]
91macro_rules! true_break {
92    ($express:expr) => {
93        if $express {
94            break;
95        }
96    };
97}
98#[macro_export]
99macro_rules! option_loop_break {
100    ($cur_cnt :expr, $max_val: expr) => {
101        if let Some(var) = $max_val {
102            if $cur_cnt >= var {
103                break;
104            }
105        }
106    };
107}
108
109#[macro_export]
110macro_rules! true_continue {
111    ($express:expr) => {
112        if $express {
113            continue;
114        }
115    };
116}