simd_json/value/lazy/
from.rs

1use super::Value;
2use crate::StaticNode;
3use crate::{borrowed, cow::Cow};
4use std::borrow::Cow as StdCow;
5
6impl<'value> From<borrowed::Value<'value>> for Value<'_, '_, 'value> {
7    #[cfg_attr(not(feature = "no-inline"), inline)]
8    fn from(v: borrowed::Value<'value>) -> Self {
9        Value::Value(StdCow::Owned(v))
10    }
11}
12
13impl From<StaticNode> for Value<'_, '_, '_> {
14    #[cfg_attr(not(feature = "no-inline"), inline)]
15    fn from(v: StaticNode) -> Self {
16        Value::Value(StdCow::Owned(borrowed::Value::from(v)))
17    }
18}
19
20impl<'value, T> From<Option<T>> for Value<'_, '_, 'value>
21where
22    borrowed::Value<'value>: From<Option<T>>,
23{
24    #[cfg_attr(not(feature = "no-inline"), inline)]
25    fn from(v: Option<T>) -> Self {
26        Value::Value(StdCow::Owned(borrowed::Value::from(v)))
27    }
28}
29/********* str_ **********/
30impl<'value> From<&'value str> for Value<'_, '_, 'value> {
31    #[cfg_attr(not(feature = "no-inline"), inline)]
32    fn from(v: &'value str) -> Self {
33        Value::Value(StdCow::Owned(borrowed::Value::from(v)))
34    }
35}
36
37#[cfg(feature = "beef")]
38impl<'value> From<std::borrow::Cow<'value, str>> for Value<'_, '_, 'value> {
39    #[cfg_attr(not(feature = "no-inline"), inline)]
40    fn from(v: std::borrow::Cow<'value, str>) -> Self {
41        Value::Value(StdCow::Owned(borrowed::Value::from(v)))
42    }
43}
44
45#[cfg(not(feature = "beef"))]
46impl<'value> From<std::borrow::Cow<'value, str>> for Value<'_, '_, 'value> {
47    #[cfg_attr(not(feature = "no-inline"), inline)]
48    fn from(v: std::borrow::Cow<'value, str>) -> Self {
49        Value::Value(StdCow::Owned(borrowed::Value::from(v)))
50    }
51}
52
53#[cfg(feature = "beef")]
54impl<'value> From<beef::lean::Cow<'value, str>> for Value<'_, '_, 'value> {
55    #[cfg_attr(not(feature = "no-inline"), inline)]
56    fn from(v: beef::lean::Cow<'value, str>) -> Self {
57        Value::Value(StdCow::Owned(borrowed::Value::from(v)))
58    }
59}
60
61impl From<String> for Value<'_, '_, '_> {
62    #[cfg_attr(not(feature = "no-inline"), inline)]
63    fn from(v: String) -> Self {
64        Value::Value(StdCow::Owned(borrowed::Value::from(v)))
65    }
66}
67
68/********* atoms **********/
69impl From<bool> for Value<'_, '_, '_> {
70    #[cfg_attr(not(feature = "no-inline"), inline)]
71    fn from(v: bool) -> Self {
72        Value::Value(StdCow::Owned(borrowed::Value::from(v)))
73    }
74}
75impl From<()> for Value<'_, '_, '_> {
76    #[cfg_attr(not(feature = "no-inline"), inline)]
77    fn from(v: ()) -> Self {
78        Value::Value(StdCow::Owned(borrowed::Value::from(v)))
79    }
80}
81
82/********* i_ **********/
83impl From<i8> for Value<'_, '_, '_> {
84    #[cfg_attr(not(feature = "no-inline"), inline)]
85    fn from(v: i8) -> Self {
86        Value::Value(StdCow::Owned(borrowed::Value::from(v)))
87    }
88}
89
90impl From<i16> for Value<'_, '_, '_> {
91    #[cfg_attr(not(feature = "no-inline"), inline)]
92    fn from(v: i16) -> Self {
93        Value::Value(StdCow::Owned(borrowed::Value::from(v)))
94    }
95}
96
97impl From<i32> for Value<'_, '_, '_> {
98    #[cfg_attr(not(feature = "no-inline"), inline)]
99    fn from(v: i32) -> Self {
100        Value::Value(StdCow::Owned(borrowed::Value::from(v)))
101    }
102}
103
104impl From<i64> for Value<'_, '_, '_> {
105    #[cfg_attr(not(feature = "no-inline"), inline)]
106    fn from(v: i64) -> Self {
107        Value::Value(StdCow::Owned(borrowed::Value::from(v)))
108    }
109}
110
111#[cfg(feature = "128bit")]
112impl From<i128> for Value<'_, '_, '_> {
113    #[cfg_attr(not(feature = "no-inline"), inline)]
114    fn from(v: i128) -> Self {
115        Value::Value(StdCow::Owned(borrowed::Value::from(v)))
116    }
117}
118
119/********* u_ **********/
120impl From<u8> for Value<'_, '_, '_> {
121    #[cfg_attr(not(feature = "no-inline"), inline)]
122    fn from(v: u8) -> Self {
123        Value::Value(StdCow::Owned(borrowed::Value::from(v)))
124    }
125}
126
127impl From<u16> for Value<'_, '_, '_> {
128    #[cfg_attr(not(feature = "no-inline"), inline)]
129    fn from(v: u16) -> Self {
130        Value::Value(StdCow::Owned(borrowed::Value::from(v)))
131    }
132}
133
134impl From<u32> for Value<'_, '_, '_> {
135    #[cfg_attr(not(feature = "no-inline"), inline)]
136    fn from(v: u32) -> Self {
137        Value::Value(StdCow::Owned(borrowed::Value::from(v)))
138    }
139}
140
141impl From<u64> for Value<'_, '_, '_> {
142    #[cfg_attr(not(feature = "no-inline"), inline)]
143    fn from(v: u64) -> Self {
144        Value::Value(StdCow::Owned(borrowed::Value::from(v)))
145    }
146}
147
148#[cfg(feature = "128bit")]
149impl From<u128> for Value<'_, '_, '_> {
150    #[cfg_attr(not(feature = "no-inline"), inline)]
151    fn from(v: u128) -> Self {
152        Value::Value(StdCow::Owned(borrowed::Value::from(v)))
153    }
154}
155
156impl From<usize> for Value<'_, '_, '_> {
157    #[cfg_attr(not(feature = "no-inline"), inline)]
158    fn from(v: usize) -> Self {
159        Value::Value(StdCow::Owned(borrowed::Value::from(v)))
160    }
161}
162
163/********* f_ **********/
164impl From<f32> for Value<'_, '_, '_> {
165    #[cfg_attr(not(feature = "no-inline"), inline)]
166    fn from(v: f32) -> Self {
167        Value::Value(StdCow::Owned(borrowed::Value::from(v)))
168    }
169}
170
171impl From<f64> for Value<'_, '_, '_> {
172    #[cfg_attr(not(feature = "no-inline"), inline)]
173    fn from(v: f64) -> Self {
174        Value::Value(StdCow::Owned(borrowed::Value::from(v)))
175    }
176}
177
178impl<'value, S> From<Vec<S>> for Value<'_, '_, 'value>
179where
180    borrowed::Value<'value>: From<Vec<S>>,
181{
182    #[cfg_attr(not(feature = "no-inline"), inline)]
183    fn from(v: Vec<S>) -> Self {
184        Value::Value(StdCow::Owned(borrowed::Value::from(v)))
185    }
186}
187
188impl<'value, V: Into<borrowed::Value<'value>>> FromIterator<V> for Value<'_, '_, 'value> {
189    #[cfg_attr(not(feature = "no-inline"), inline)]
190    fn from_iter<I: IntoIterator<Item = V>>(v: I) -> Self {
191        Value::Value(StdCow::Owned(borrowed::Value::from_iter(v)))
192    }
193}
194
195impl<'value, K: Into<Cow<'value, str>>, V: Into<borrowed::Value<'value>>> FromIterator<(K, V)>
196    for Value<'_, '_, 'value>
197{
198    #[cfg_attr(not(feature = "no-inline"), inline)]
199    fn from_iter<I: IntoIterator<Item = (K, V)>>(v: I) -> Self {
200        Value::Value(StdCow::Owned(borrowed::Value::from_iter(v)))
201    }
202}
203
204impl<'value> From<crate::borrowed::Object<'value>> for Value<'_, '_, 'value> {
205    #[cfg_attr(not(feature = "no-inline"), inline)]
206    fn from(v: crate::borrowed::Object<'value>) -> Self {
207        Value::Value(StdCow::Owned(borrowed::Value::from(v)))
208    }
209}