1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
use derive_more::Display;
#[derive(Debug, Display, Clone, Copy)]
#[display(fmt = "{}{}", coefficient, unit)]
pub struct ParsedValue {
pub(super) coefficient: u64,
pub(super) unit: char,
pub(super) scale: u64,
pub(super) exponent: usize,
}
macro_rules! parsed_value_getter {
($(#[$attributes:meta])* $field:ident: $result:ty) => {
$(#[$attributes])*
pub const fn $field(self) -> $result {
self.$field
}
};
}
impl ParsedValue {
parsed_value_getter!(
coefficient: u64
);
parsed_value_getter!(
unit: char
);
parsed_value_getter!(
scale: u64
);
parsed_value_getter!(
exponent: usize
);
}