1#[cfg(feature = "ordered-float")]
2use ordered_float::OrderedFloat;
3
4use crate::StaticNode;
5
6impl 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
22impl 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 fn from(i: i128) -> Self {
54 Self::I128(i)
55 }
56}
57
58impl From<u8> for StaticNode {
60 #[inline]
61 fn from(i: u8) -> Self {
62 Self::U64(u64::from(i))
63 }
64}
65
66impl From<u16> for StaticNode {
67 #[inline]
68 fn from(i: u16) -> Self {
69 Self::U64(u64::from(i))
70 }
71}
72
73impl From<u32> for StaticNode {
74 #[inline]
75 fn from(i: u32) -> Self {
76 Self::U64(u64::from(i))
77 }
78}
79
80impl From<u64> for StaticNode {
81 #[inline]
82 fn from(i: u64) -> Self {
83 Self::U64(i)
84 }
85}
86
87#[cfg(feature = "128bit")]
88impl From<u128> for StaticNode {
89 #[inline]
90 fn from(i: u128) -> Self {
91 Self::U128(i)
92 }
93}
94
95impl From<usize> for StaticNode {
96 #[inline]
97 fn from(i: usize) -> Self {
98 Self::U64(i as u64)
99 }
100}
101
102#[cfg(not(feature = "ordered-float"))]
104impl From<f32> for StaticNode {
105 #[inline]
106 fn from(f: f32) -> Self {
107 Self::F64(f64::from(f))
108 }
109}
110
111#[cfg(not(feature = "ordered-float"))]
112impl From<f64> for StaticNode {
113 #[inline]
114 fn from(f: f64) -> Self {
115 Self::F64(f)
116 }
117}
118
119#[cfg(feature = "ordered-float")]
120impl From<f32> for StaticNode {
121 #[inline]
122 #[must_use]
123 fn from(f: f32) -> Self {
124 Self::F64(OrderedFloat::from(f64::from(f)))
125 }
126}
127
128#[cfg(feature = "ordered-float")]
129impl From<f64> for StaticNode {
130 #[inline]
131 #[must_use]
132 fn from(f: f64) -> Self {
133 Self::F64(OrderedFloat::from(f))
134 }
135}