1#[macro_export]
2macro_rules! dash_to_credits {
3 ($dash:expr) => {{
5 let dash_str = stringify!($dash);
6
7 let parts: Vec<&str> = dash_str.split('.').collect();
9 let mut credits: u128 = 0;
10
11 if let Some(whole) = parts.get(0) {
13 if let Ok(whole_number) = whole.parse::<u128>() {
14 credits += whole_number * 100_000_000_000; }
16 }
17
18 if let Some(fraction) = parts.get(1) {
20 let fraction_length = fraction.len();
21 let fraction_number = fraction.parse::<u128>().unwrap_or(0);
22 let multiplier = 10u128.pow(11 - fraction_length as u32);
24 credits += fraction_number * multiplier; }
26
27 credits as u64
28 }};
29}
30
31#[macro_export]
32macro_rules! dash_to_duffs {
33 ($dash:expr) => {{
35 let dash_str = stringify!($dash);
36
37 let parts: Vec<&str> = dash_str.split('.').collect();
39 let mut credits: u128 = 0;
40
41 if let Some(whole) = parts.get(0) {
43 if let Ok(whole_number) = whole.parse::<u128>() {
44 credits += whole_number * 100_000_000; }
46 }
47
48 if let Some(fraction) = parts.get(1) {
50 let fraction_length = fraction.len();
51 let fraction_number = fraction.parse::<u128>().unwrap_or(0);
52 let multiplier = 10u128.pow(8 - fraction_length as u32);
54 credits += fraction_number * multiplier; }
56
57 credits as u64
58 }};
59}