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