shiny_configuration/value/
number.rs

1#[derive(Debug, Clone, Copy)]
2pub enum Number {
3    Integer(i64),
4    UInteger(u64),
5    Float(f64),
6}
7
8impl PartialEq for Number {
9    fn eq(&self, other: &Self) -> bool {
10        match (self, other) {
11            (Number::Integer(v1), Number::Integer(v2)) => v1 == v2,
12            (Number::UInteger(v1), Number::UInteger(v2)) => v1 == v2,
13            (Number::Float(v1), Number::Float(v2)) => v1 == v2,
14            _ => false,
15        }
16    }
17}
18
19impl From<u8> for Number {
20    fn from(value: u8) -> Self {
21        Number::UInteger(value as u64)
22    }
23}
24
25impl From<u16> for Number {
26    fn from(value: u16) -> Self {
27        Number::UInteger(value as u64)
28    }
29}
30
31impl From<u32> for Number {
32    fn from(value: u32) -> Self {
33        Number::UInteger(value as u64)
34    }
35}
36
37impl From<u64> for Number {
38    fn from(value: u64) -> Self {
39        Number::UInteger(value)
40    }
41}
42
43impl From<i8> for Number {
44    fn from(value: i8) -> Self {
45        Number::Integer(value as i64)
46    }
47}
48
49impl From<i16> for Number {
50    fn from(value: i16) -> Self {
51        Number::Integer(value as i64)
52    }
53}
54
55impl From<i32> for Number {
56    fn from(value: i32) -> Self {
57        Number::Integer(value as i64)
58    }
59}
60
61impl From<i64> for Number {
62    fn from(value: i64) -> Self {
63        Number::Integer(value)
64    }
65}
66
67impl From<f32> for Number {
68    fn from(value: f32) -> Self {
69        Number::Float(value as f64)
70    }
71}
72
73impl From<f64> for Number {
74    fn from(value: f64) -> Self {
75        Number::Float(value)
76    }
77}