reda_unit/
macros.rs

1
2#[macro_export]
3macro_rules! num {
4    ($val:literal k) => {
5        $crate::Number::new($val as f64, $crate::Suffix::Kilo)
6    };
7    ($val:literal K) => {
8        $crate::Number::new($val as f64, $crate::Suffix::Kilo)
9    };
10    ($val:literal M) => {
11        $crate::Number::new($val as f64, $crate::Suffix::Mega)
12    };
13    ($val:literal G) => {
14        $crate::Number::new($val as f64, $crate::Suffix::Giga)
15    };
16    ($val:literal m) => {
17        $crate::Number::new($val as f64, $crate::Suffix::Milli)
18    };
19    ($val:literal u) => {
20        $crate::Number::new($val as f64, $crate::Suffix::Micro)
21    };
22    ($val:literal n) => {
23        $crate::Number::new($val as f64, $crate::Suffix::Nano)
24    };
25    ($val:literal p) => {
26        $crate::Number::new($val as f64, $crate::Suffix::Pico)
27    };
28    ($val:literal) => {
29        $crate::Number::new($val as f64, $crate::Suffix::None)
30    };
31
32    ($var:ident k) => {
33        $crate::Number::new($var as f64, $crate::Suffix::Kilo)
34    };
35    ($var:ident K) => {
36        $crate::Number::new($var as f64, $crate::Suffix::Kilo)
37    };
38    ($var:ident M) => {
39        $crate::Number::new($var as f64, $crate::Suffix::Mega)
40    };
41    ($var:ident G) => {
42        $crate::Number::new($var as f64, $crate::Suffix::Giga)
43    };
44    ($var:ident m) => {
45        $crate::Number::new($var as f64, $crate::Suffix::Milli)
46    };
47    ($var:ident u) => {
48        $crate::Number::new($var as f64, $crate::Suffix::Micro)
49    };
50    ($var:ident n) => {
51        $crate::Number::new($var as f64, $crate::Suffix::Nano)
52    };
53    ($var:ident p) => {
54        $crate::Number::new($var as f64, $crate::Suffix::Pico)
55    };
56    ($var:ident) => {
57        $crate::Number::new($var as f64, $crate::Suffix::None)
58    };
59}
60
61#[macro_export]
62macro_rules! complex {
63    ($re:literal $re_suffix:ident , $im:literal $im_suffix:ident) => {
64        $crate::Complex::new($crate::num!($re $re_suffix), $crate::num!($im $im_suffix))
65    };
66
67    ($re:literal $re_suffix:ident , $im:literal ) => {
68        $crate::Complex::new($crate::num!($re $re_suffix), $crate::num!($im))
69    };
70
71    ($re:literal , $im:literal $im_suffix:ident) => {
72        $crate::Complex::new($crate::num!($re), $crate::num!($im $im_suffix))
73    };
74
75    ($re:literal , $im:literal ) => {
76        $crate::Complex::new($crate::num!($re), $crate::num!($im))
77    };
78}
79
80#[macro_export]
81macro_rules! v {
82    ($($t:tt)*) => {
83        $crate::Voltage::new($crate::num!($($t)*))
84    };
85}
86
87#[macro_export]
88macro_rules! i {
89    ($($t:tt)*) => {
90        $crate::Current::new($crate::num!($($t)*))
91    };
92}
93
94#[macro_export]
95macro_rules! r {
96    ($($t:tt)*) => {
97        $crate::Resistance::new($crate::num!($($t)*))
98    };
99}
100
101#[macro_export]
102macro_rules! c {
103    ($($t:tt)*) => {
104        $crate::Capacitance::new($crate::num!($($t)*))
105    };
106}
107
108#[macro_export]
109macro_rules! l {
110    ($($t:tt)*) => {
111        $crate::Inductance::new($crate::num!($($t)*))
112    };
113}
114
115#[macro_export]
116macro_rules! q {
117    ($($t:tt)*) => {
118        $crate::Charge::new($crate::num!($($t)*))
119    };
120}
121
122#[macro_export]
123macro_rules! p {
124    ($($t:tt)*) => {
125        $crate::Power::new($crate::num!($($t)*))
126    };
127}
128
129#[macro_export]
130macro_rules! e {
131    ($($t:tt)*) => {
132        $crate::Energy::new($crate::num!($($t)*))
133    };
134}
135
136#[macro_export]
137macro_rules! t {
138    ($($t:tt)*) => {
139        $crate::Time::new($crate::num!($($t)*))
140    };
141}
142
143#[macro_export]
144macro_rules! f {
145    ($($t:tt)*) => {
146        $crate::Frequency::new($crate::num!($($t)*))
147    };
148}
149
150#[macro_export]
151macro_rules! m {
152    ($($t:tt)*) => {
153        $crate::Length::new($crate::num!($($t)*))
154    };
155}
156
157#[macro_export]
158macro_rules! a {
159    ($($t:tt)*) => {
160        $crate::Area::new($crate::num!($($t)*))
161    };
162}
163
164#[macro_export]
165macro_rules! fo {
166    ($($t:tt)*) => {
167        $crate::Force::new($crate::num!($($t)*))
168    };
169}
170
171#[macro_export]
172macro_rules! pr {
173    ($($t:tt)*) => {
174        $crate::Pressure::new($crate::num!($($t)*))
175    };
176}
177
178#[macro_export]
179macro_rules! mf {
180    ($($t:tt)*) => {
181        $crate::MagneticFlux::new($crate::num!($($t)*))
182    };
183}
184
185#[macro_export]
186macro_rules! fd {
187    ($($t:tt)*) => {
188        $crate::FluxDensity::new($crate::num!($($t)*))
189    };
190}
191
192#[macro_export]
193macro_rules! g {
194    ($($t:tt)*) => {
195        $crate::Conductance::new($crate::num!($($t)*))
196    };
197}
198
199#[macro_export]
200macro_rules! vel {
201    ($($t:tt)*) => {
202        $crate::Velocity::new($crate::num!($($t)*))
203    };
204}
205
206#[macro_export]
207macro_rules! acc {
208    ($($t:tt)*) => {
209        $crate::Accel::new($crate::num!($($t)*))
210    };
211}
212
213#[macro_export]
214macro_rules! temp {
215    ($($t:tt)*) => {
216        $crate::Temperature::new($crate::num!($($t)*))
217    };
218}
219
220#[macro_export]
221macro_rules! ang {
222    ($($t:tt)*) => {
223        $crate::Angle::new($crate::num!($($t)*))
224    };
225}