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}