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 #[must_use]
54 fn from(i: i128) -> Self {
55 Self::I128(i)
56 }
57}
58
59impl 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#[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}