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}