runmod/
runvar.rs

1use std::fmt::Display;
2
3#[derive(Clone, PartialEq, PartialOrd)]
4pub enum RunVar {
5    I8(i8),
6    I16(i16),
7    I32(i32),
8    I64(i64),
9    I128(i128),
10    U8(u8),
11    U16(u16),
12    U32(u32),
13    U64(u64),
14    U128(u128),
15    F32(f32),
16    F64(f64),
17    USIZE(usize),
18    ISIZE(isize),
19    STRING(String),
20}
21
22impl Default for RunVar {
23    fn default() -> Self {
24        Self::I32(0)
25    }
26}
27
28// from RunVar to number
29try_into_impl!(i8, I8);
30try_into_impl!(i16, I16);
31try_into_impl!(i32, I32);
32try_into_impl!(i64, I64);
33try_into_impl!(i128, I128);
34try_into_impl!(isize, ISIZE);
35try_into_impl!(u8, U8);
36try_into_impl!(u16, U16);
37try_into_impl!(u32, U32);
38try_into_impl!(u64, U64);
39try_into_impl!(u128, U128);
40try_into_impl!(usize, USIZE);
41try_into_impl!(f32, F32);
42try_into_impl!(f64, F64);
43try_into_impl!(String, STRING);
44
45// from number to RunVar
46// from_impl!(i8, I8);
47// from_impl!(i16, I16);
48// from_impl!(i32, I32);
49// from_impl!(i64, I64);
50// from_impl!(i128, I128);
51// from_impl!(isize, ISIZE);
52// from_impl!(u8, U8);
53// from_impl!(u16, U16);
54// from_impl!(u32, U32);
55// from_impl!(u64, U64);
56// from_impl!(u128, U128);
57// from_impl!(usize, USIZE);
58// from_impl!(f32, F32);
59// from_impl!(f64, F64);
60
61impl Display for RunVar {
62    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
63        match self {
64            Self::I8(x) => write!(f, "{}", x),
65            Self::I16(x) => write!(f, "{}", x),
66            Self::I32(x) => write!(f, "{}", x),
67            Self::I64(x) => write!(f, "{}", x),
68            Self::I128(x) => write!(f, "{}", x),
69            Self::U8(x) => write!(f, "{}", x),
70            Self::U16(x) => write!(f, "{}", x),
71            Self::U32(x) => write!(f, "{}", x),
72            Self::U64(x) => write!(f, "{}", x),
73            Self::U128(x) => write!(f, "{}", x),
74            Self::F32(x) => write!(f, "{}", x),
75            Self::F64(x) => write!(f, "{}", x),
76            Self::USIZE(x) => write!(f, "{}", x),
77            Self::ISIZE(x) => write!(f, "{}", x),
78            Self::STRING(x) => write!(f, "{}", x)
79        }
80    }
81}