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