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    #[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
24/********* i_ **********/
25impl 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
65/********* u_ **********/
66impl 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/********* f_ **********/
116#[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}