value_trait/node/
from.rs

1#[cfg(feature = "ordered-float")]
2use ordered_float::OrderedFloat;
3
4use crate::StaticNode;
5
6/********* atoms **********/
7
8impl From<bool> for StaticNode {
9    #[inline]
10    fn from(b: bool) -> Self {
11        Self::Bool(b)
12    }
13}
14
15impl From<()> for StaticNode {
16    #[inline]
17    fn from(_b: ()) -> Self {
18        Self::Null
19    }
20}
21
22/********* i_ **********/
23impl From<i8> for StaticNode {
24    #[inline]
25    fn from(i: i8) -> Self {
26        Self::I64(i64::from(i))
27    }
28}
29
30impl From<i16> for StaticNode {
31    #[inline]
32    fn from(i: i16) -> Self {
33        Self::I64(i64::from(i))
34    }
35}
36
37impl From<i32> for StaticNode {
38    #[inline]
39    fn from(i: i32) -> Self {
40        Self::I64(i64::from(i))
41    }
42}
43
44impl From<i64> for StaticNode {
45    #[inline]
46    fn from(i: i64) -> Self {
47        Self::I64(i)
48    }
49}
50#[cfg(feature = "128bit")]
51impl From<i128> for StaticNode {
52    #[inline]
53    #[must_use]
54    fn from(i: i128) -> Self {
55        Self::I128(i)
56    }
57}
58
59/********* u_ **********/
60impl From<u8> for StaticNode {
61    #[inline]
62    fn from(i: u8) -> Self {
63        Self::U64(u64::from(i))
64    }
65}
66
67impl From<u16> for StaticNode {
68    #[inline]
69    fn from(i: u16) -> Self {
70        Self::U64(u64::from(i))
71    }
72}
73
74impl From<u32> for StaticNode {
75    #[inline]
76    fn from(i: u32) -> Self {
77        Self::U64(u64::from(i))
78    }
79}
80
81impl From<u64> for StaticNode {
82    #[inline]
83    fn from(i: u64) -> Self {
84        Self::U64(i)
85    }
86}
87
88#[cfg(feature = "128bit")]
89impl From<u128> for StaticNode {
90    #[inline]
91    #[must_use]
92    fn from(i: u128) -> Self {
93        Self::U128(i)
94    }
95}
96
97impl From<usize> for StaticNode {
98    #[inline]
99    fn from(i: usize) -> Self {
100        Self::U64(i as u64)
101    }
102}
103
104/********* f_ **********/
105#[cfg(not(feature = "ordered-float"))]
106impl From<f32> for StaticNode {
107    #[inline]
108    fn from(f: f32) -> Self {
109        Self::F64(f64::from(f))
110    }
111}
112
113#[cfg(not(feature = "ordered-float"))]
114impl From<f64> for StaticNode {
115    #[inline]
116    fn from(f: f64) -> Self {
117        Self::F64(f)
118    }
119}
120
121#[cfg(feature = "ordered-float")]
122impl From<f32> for StaticNode {
123    #[inline]
124    #[must_use]
125    fn from(f: f32) -> Self {
126        Self::F64(OrderedFloat::from(f64::from(f)))
127    }
128}
129
130#[cfg(feature = "ordered-float")]
131impl From<f64> for StaticNode {
132    #[inline]
133    #[must_use]
134    fn from(f: f64) -> Self {
135        Self::F64(OrderedFloat::from(f))
136    }
137}