/rust/registry/src/index.crates.io-6f17d22bba15001f/erased-serde-0.3.31/src/ser.rs
Line | Count | Source (jump to first uncovered line) |
1 | | use crate::alloc::Box; |
2 | | use crate::any::Any; |
3 | | use crate::error::Error; |
4 | | use crate::map::ResultExt; |
5 | | use core::fmt::Display; |
6 | | use core::marker::PhantomData; |
7 | | use serde::ser::{ |
8 | | SerializeMap, SerializeSeq, SerializeStruct, SerializeStructVariant, SerializeTuple, |
9 | | SerializeTupleStruct, SerializeTupleVariant, |
10 | | }; |
11 | | |
12 | | // TRAITS ////////////////////////////////////////////////////////////////////// |
13 | | |
14 | | /// An object-safe equivalent of Serde's `Serialize` trait. |
15 | | /// |
16 | | /// Any implementation of Serde's `Serialize` converts seamlessly to an |
17 | | /// `&erased_serde::Serialize` or `Box<erased_serde::Serialize>` trait object. |
18 | | /// |
19 | | /// ```rust |
20 | | /// use erased_serde::{Serialize, Serializer}; |
21 | | /// use std::collections::BTreeMap as Map; |
22 | | /// use std::io; |
23 | | /// |
24 | | /// fn main() { |
25 | | /// // Construct some serializers. |
26 | | /// let json = &mut serde_json::Serializer::new(io::stdout()); |
27 | | /// let cbor = &mut serde_cbor::Serializer::new(serde_cbor::ser::IoWrite::new(io::stdout())); |
28 | | /// |
29 | | /// // The values in this map are boxed trait objects. Ordinarily this would not |
30 | | /// // be possible with serde::Serializer because of object safety, but type |
31 | | /// // erasure makes it possible with erased_serde::Serializer. |
32 | | /// let mut formats: Map<&str, Box<dyn Serializer>> = Map::new(); |
33 | | /// formats.insert("json", Box::new(<dyn Serializer>::erase(json))); |
34 | | /// formats.insert("cbor", Box::new(<dyn Serializer>::erase(cbor))); |
35 | | /// |
36 | | /// // These are boxed trait objects as well. Same thing here - type erasure |
37 | | /// // makes this possible. |
38 | | /// let mut values: Map<&str, Box<dyn Serialize>> = Map::new(); |
39 | | /// values.insert("vec", Box::new(vec!["a", "b"])); |
40 | | /// values.insert("int", Box::new(65536)); |
41 | | /// |
42 | | /// // Pick a Serializer out of the formats map. |
43 | | /// let format = formats.get_mut("json").unwrap(); |
44 | | /// |
45 | | /// // Pick a Serialize out of the values map. |
46 | | /// let value = values.get("vec").unwrap(); |
47 | | /// |
48 | | /// // This line prints `["a","b"]` to stdout. |
49 | | /// value.erased_serialize(format).unwrap(); |
50 | | /// } |
51 | | /// ``` |
52 | | pub trait Serialize { |
53 | | fn erased_serialize(&self, v: &mut dyn Serializer) -> Result<Ok, Error>; |
54 | | } |
55 | | |
56 | | /// An object-safe equivalent of Serde's `Serializer` trait. |
57 | | /// |
58 | | /// Any implementation of Serde's `Serializer` can be converted to an |
59 | | /// `&erased_serde::Serializer` or `Box<erased_serde::Serializer>` trait object |
60 | | /// using `erased_serde::Serializer::erase`. |
61 | | /// |
62 | | /// ```rust |
63 | | /// use erased_serde::{Serialize, Serializer}; |
64 | | /// use std::collections::BTreeMap as Map; |
65 | | /// use std::io; |
66 | | /// |
67 | | /// fn main() { |
68 | | /// // Construct some serializers. |
69 | | /// let json = &mut serde_json::Serializer::new(io::stdout()); |
70 | | /// let cbor = &mut serde_cbor::Serializer::new(serde_cbor::ser::IoWrite::new(io::stdout())); |
71 | | /// |
72 | | /// // The values in this map are boxed trait objects. Ordinarily this would not |
73 | | /// // be possible with serde::Serializer because of object safety, but type |
74 | | /// // erasure makes it possible with erased_serde::Serializer. |
75 | | /// let mut formats: Map<&str, Box<dyn Serializer>> = Map::new(); |
76 | | /// formats.insert("json", Box::new(<dyn Serializer>::erase(json))); |
77 | | /// formats.insert("cbor", Box::new(<dyn Serializer>::erase(cbor))); |
78 | | /// |
79 | | /// // These are boxed trait objects as well. Same thing here - type erasure |
80 | | /// // makes this possible. |
81 | | /// let mut values: Map<&str, Box<dyn Serialize>> = Map::new(); |
82 | | /// values.insert("vec", Box::new(vec!["a", "b"])); |
83 | | /// values.insert("int", Box::new(65536)); |
84 | | /// |
85 | | /// // Pick a Serializer out of the formats map. |
86 | | /// let format = formats.get_mut("json").unwrap(); |
87 | | /// |
88 | | /// // Pick a Serialize out of the values map. |
89 | | /// let value = values.get("vec").unwrap(); |
90 | | /// |
91 | | /// // This line prints `["a","b"]` to stdout. |
92 | | /// value.erased_serialize(format).unwrap(); |
93 | | /// } |
94 | | /// ``` |
95 | | pub trait Serializer { |
96 | | fn erased_serialize_bool(&mut self, v: bool) -> Result<Ok, Error>; |
97 | | fn erased_serialize_i8(&mut self, v: i8) -> Result<Ok, Error>; |
98 | | fn erased_serialize_i16(&mut self, v: i16) -> Result<Ok, Error>; |
99 | | fn erased_serialize_i32(&mut self, v: i32) -> Result<Ok, Error>; |
100 | | fn erased_serialize_i64(&mut self, v: i64) -> Result<Ok, Error>; |
101 | | fn erased_serialize_i128(&mut self, v: i128) -> Result<Ok, Error>; |
102 | | fn erased_serialize_u8(&mut self, v: u8) -> Result<Ok, Error>; |
103 | | fn erased_serialize_u16(&mut self, v: u16) -> Result<Ok, Error>; |
104 | | fn erased_serialize_u32(&mut self, v: u32) -> Result<Ok, Error>; |
105 | | fn erased_serialize_u64(&mut self, v: u64) -> Result<Ok, Error>; |
106 | | fn erased_serialize_u128(&mut self, v: u128) -> Result<Ok, Error>; |
107 | | fn erased_serialize_f32(&mut self, v: f32) -> Result<Ok, Error>; |
108 | | fn erased_serialize_f64(&mut self, v: f64) -> Result<Ok, Error>; |
109 | | fn erased_serialize_char(&mut self, v: char) -> Result<Ok, Error>; |
110 | | fn erased_serialize_str(&mut self, v: &str) -> Result<Ok, Error>; |
111 | | fn erased_serialize_bytes(&mut self, v: &[u8]) -> Result<Ok, Error>; |
112 | | fn erased_serialize_none(&mut self) -> Result<Ok, Error>; |
113 | | fn erased_serialize_some(&mut self, v: &dyn Serialize) -> Result<Ok, Error>; |
114 | | fn erased_serialize_unit(&mut self) -> Result<Ok, Error>; |
115 | | fn erased_serialize_unit_struct(&mut self, name: &'static str) -> Result<Ok, Error>; |
116 | | fn erased_serialize_unit_variant( |
117 | | &mut self, |
118 | | name: &'static str, |
119 | | variant_index: u32, |
120 | | variant: &'static str, |
121 | | ) -> Result<Ok, Error>; |
122 | | fn erased_serialize_newtype_struct( |
123 | | &mut self, |
124 | | name: &'static str, |
125 | | v: &dyn Serialize, |
126 | | ) -> Result<Ok, Error>; |
127 | | fn erased_serialize_newtype_variant( |
128 | | &mut self, |
129 | | name: &'static str, |
130 | | variant_index: u32, |
131 | | variant: &'static str, |
132 | | v: &dyn Serialize, |
133 | | ) -> Result<Ok, Error>; |
134 | | fn erased_serialize_seq(&mut self, len: Option<usize>) -> Result<Seq, Error>; |
135 | | fn erased_serialize_tuple(&mut self, len: usize) -> Result<Tuple, Error>; |
136 | | fn erased_serialize_tuple_struct( |
137 | | &mut self, |
138 | | name: &'static str, |
139 | | len: usize, |
140 | | ) -> Result<TupleStruct, Error>; |
141 | | fn erased_serialize_tuple_variant( |
142 | | &mut self, |
143 | | name: &'static str, |
144 | | variant_index: u32, |
145 | | variant: &'static str, |
146 | | len: usize, |
147 | | ) -> Result<TupleVariant, Error>; |
148 | | fn erased_serialize_map(&mut self, len: Option<usize>) -> Result<Map, Error>; |
149 | | fn erased_serialize_struct(&mut self, name: &'static str, len: usize) -> Result<Struct, Error>; |
150 | | fn erased_serialize_struct_variant( |
151 | | &mut self, |
152 | | name: &'static str, |
153 | | variant_index: u32, |
154 | | variant: &'static str, |
155 | | len: usize, |
156 | | ) -> Result<StructVariant, Error>; |
157 | | fn erased_is_human_readable(&self) -> bool; |
158 | | } |
159 | | |
160 | | impl dyn Serializer { |
161 | | /// Convert any Serde `Serializer` to a trait object. |
162 | | /// |
163 | | /// ```rust |
164 | | /// use erased_serde::{Serialize, Serializer}; |
165 | | /// use std::collections::BTreeMap as Map; |
166 | | /// use std::io; |
167 | | /// |
168 | | /// fn main() { |
169 | | /// // Construct some serializers. |
170 | | /// let json = &mut serde_json::Serializer::new(io::stdout()); |
171 | | /// let cbor = &mut serde_cbor::Serializer::new(serde_cbor::ser::IoWrite::new(io::stdout())); |
172 | | /// |
173 | | /// // The values in this map are boxed trait objects. Ordinarily this would not |
174 | | /// // be possible with serde::Serializer because of object safety, but type |
175 | | /// // erasure makes it possible with erased_serde::Serializer. |
176 | | /// let mut formats: Map<&str, Box<dyn Serializer>> = Map::new(); |
177 | | /// formats.insert("json", Box::new(<dyn Serializer>::erase(json))); |
178 | | /// formats.insert("cbor", Box::new(<dyn Serializer>::erase(cbor))); |
179 | | /// |
180 | | /// // These are boxed trait objects as well. Same thing here - type erasure |
181 | | /// // makes this possible. |
182 | | /// let mut values: Map<&str, Box<dyn Serialize>> = Map::new(); |
183 | | /// values.insert("vec", Box::new(vec!["a", "b"])); |
184 | | /// values.insert("int", Box::new(65536)); |
185 | | /// |
186 | | /// // Pick a Serializer out of the formats map. |
187 | | /// let format = formats.get_mut("json").unwrap(); |
188 | | /// |
189 | | /// // Pick a Serialize out of the values map. |
190 | | /// let value = values.get("vec").unwrap(); |
191 | | /// |
192 | | /// // This line prints `["a","b"]` to stdout. |
193 | | /// value.erased_serialize(format).unwrap(); |
194 | | /// } |
195 | | /// ``` |
196 | 0 | pub fn erase<S>(serializer: S) -> erase::Serializer<S> |
197 | 0 | where |
198 | 0 | S: serde::Serializer, |
199 | 0 | S::Ok: 'static, |
200 | 0 | { |
201 | 0 | erase::Serializer { |
202 | 0 | state: Some(serializer), |
203 | 0 | } |
204 | 0 | } |
205 | | } |
206 | | |
207 | | // OK ////////////////////////////////////////////////////////////////////////// |
208 | | |
209 | | // Corresponds to the Serializer::Ok associated type. |
210 | | // |
211 | | // This struct is exposed to users by invoking methods on the Serialize or |
212 | | // Serializer trait objects, so we need to make sure they do not hold on to the |
213 | | // Ok beyond the lifetime of the data in the Any. |
214 | | // |
215 | | // We do this by enforcing S::Ok is 'static for every Serializer trait object |
216 | | // created by the user. |
217 | | pub struct Ok { |
218 | | data: Any, |
219 | | } |
220 | | |
221 | | impl Ok { |
222 | 0 | unsafe fn new<T>(t: T) -> Self { |
223 | 0 | Ok { |
224 | 0 | data: unsafe { Any::new(t) }, |
225 | 0 | } |
226 | 0 | } Unexecuted instantiation: <erased_serde::ser::Ok>::new::<erased_serde::ser::Ok> Unexecuted instantiation: <erased_serde::ser::Ok>::new::<alloc::string::String> Unexecuted instantiation: <erased_serde::ser::Ok>::new::<serde_json::value::Value> Unexecuted instantiation: <erased_serde::ser::Ok>::new::<()> Unexecuted instantiation: <erased_serde::ser::Ok>::new::<_> |
227 | | |
228 | 0 | unsafe fn take<T>(self) -> T { |
229 | 0 | unsafe { self.data.take() } |
230 | 0 | } Unexecuted instantiation: <erased_serde::ser::Ok>::take::<erased_serde::ser::Ok> Unexecuted instantiation: <erased_serde::ser::Ok>::take::<alloc::string::String> Unexecuted instantiation: <erased_serde::ser::Ok>::take::<serde_json::value::Value> Unexecuted instantiation: <erased_serde::ser::Ok>::take::<()> Unexecuted instantiation: <erased_serde::ser::Ok>::take::<_> |
231 | | } |
232 | | |
233 | | // IMPL ERASED SERDE FOR SERDE ///////////////////////////////////////////////// |
234 | | |
235 | | impl<T> Serialize for T |
236 | | where |
237 | | T: ?Sized + serde::Serialize, |
238 | | { |
239 | 0 | fn erased_serialize(&self, serializer: &mut dyn Serializer) -> Result<Ok, Error> { |
240 | 0 | self.serialize(serializer) |
241 | 0 | } Unexecuted instantiation: <starlark::values::typing::never::TypingNever as erased_serde::ser::Serialize>::erased_serialize Unexecuted instantiation: <starlark::values::types::float::StarlarkFloat as erased_serde::ser::Serialize>::erased_serialize Unexecuted instantiation: <starlark::values::typing::iter::TypingIterable as erased_serde::ser::Serialize>::erased_serialize Unexecuted instantiation: <starlark::eval::compiler::def_inline::local_as_value::LocalAsValue as erased_serde::ser::Serialize>::erased_serialize Unexecuted instantiation: <&starlark::values::layout::typed::ValueTyped<starlark::values::types::string::str_type::StarlarkStr> as erased_serde::ser::Serialize>::erased_serialize Unexecuted instantiation: <starlark::values::types::none::none_type::NoneType as erased_serde::ser::Serialize>::erased_serialize Unexecuted instantiation: <starlark::values::types::string::str_type::StarlarkStr as erased_serde::ser::Serialize>::erased_serialize Unexecuted instantiation: <&dyn erased_serde::ser::Serialize as erased_serde::ser::Serialize>::erased_serialize Unexecuted instantiation: <&&str as erased_serde::ser::Serialize>::erased_serialize Unexecuted instantiation: <starlark::values::typing::any::TypingAny as erased_serde::ser::Serialize>::erased_serialize Unexecuted instantiation: <starlark::values::types::enumeration::value::EnumValueGen<starlark::values::layout::value::FrozenValue> as erased_serde::ser::Serialize>::erased_serialize Unexecuted instantiation: <starlark::values::types::enumeration::value::EnumValueGen<starlark::values::layout::value::Value> as erased_serde::ser::Serialize>::erased_serialize Unexecuted instantiation: <starlark::values::typing::callable::TypingCallable as erased_serde::ser::Serialize>::erased_serialize Unexecuted instantiation: <starlark::values::typing::callable::TypingCallableAt2 as erased_serde::ser::Serialize>::erased_serialize Unexecuted instantiation: <starlark::values::types::int::PointerI32 as erased_serde::ser::Serialize>::erased_serialize Unexecuted instantiation: <starlark::values::types::tuple::value::TupleGen<starlark::values::layout::value::FrozenValue> as erased_serde::ser::Serialize>::erased_serialize Unexecuted instantiation: <starlark::values::types::tuple::value::TupleGen<starlark::values::layout::value::Value> as erased_serde::ser::Serialize>::erased_serialize Unexecuted instantiation: <starlark::values::types::list::value::ListGen<starlark::values::types::list::value::FrozenListData> as erased_serde::ser::Serialize>::erased_serialize Unexecuted instantiation: <starlark::values::types::list::value::ListGen<starlark::values::types::list::value::ListData> as erased_serde::ser::Serialize>::erased_serialize Unexecuted instantiation: <starlark::values::types::record::instance::RecordGen<starlark::values::layout::value::FrozenValue> as erased_serde::ser::Serialize>::erased_serialize Unexecuted instantiation: <starlark::values::types::record::instance::RecordGen<starlark::values::layout::value::Value> as erased_serde::ser::Serialize>::erased_serialize Unexecuted instantiation: <starlark::values::typing::type_compiled::compiled::TypeCompiledImplAsStarlarkValue<starlark::values::typing::type_compiled::matchers::IsAnyOfTwo<starlark::values::typing::type_compiled::matchers::IsNone, starlark::values::typing::type_compiled::matchers::StarlarkTypeIdMatcher>> as erased_serde::ser::Serialize>::erased_serialize Unexecuted instantiation: <starlark::values::typing::type_compiled::compiled::TypeCompiledImplAsStarlarkValue<starlark::values::typing::type_compiled::matchers::IsAnyOfTwo<starlark::values::typing::type_compiled::matchers::IsNone, starlark::values::typing::type_compiled::matchers::IsInt>> as erased_serde::ser::Serialize>::erased_serialize Unexecuted instantiation: <starlark::values::typing::type_compiled::compiled::TypeCompiledImplAsStarlarkValue<starlark::values::typing::type_compiled::matchers::IsAnyOfTwo<starlark::values::typing::type_compiled::matchers::IsNone, starlark::values::typing::type_compiled::matchers::IsStr>> as erased_serde::ser::Serialize>::erased_serialize Unexecuted instantiation: <starlark::values::typing::type_compiled::compiled::TypeCompiledImplAsStarlarkValue<starlark::values::typing::type_compiled::matchers::IsAnyOfTwo<starlark::values::typing::type_compiled::matchers::IsNone, starlark::values::typing::type_compiled::matchers::IsList>> as erased_serde::ser::Serialize>::erased_serialize Unexecuted instantiation: <starlark::values::typing::type_compiled::compiled::TypeCompiledImplAsStarlarkValue<starlark::values::typing::type_compiled::matchers::IsAnyOfTwo<starlark::values::typing::type_compiled::matchers::IsNone, starlark::values::typing::type_compiled::matcher::TypeMatcherBox>> as erased_serde::ser::Serialize>::erased_serialize Unexecuted instantiation: <starlark::values::typing::type_compiled::compiled::TypeCompiledImplAsStarlarkValue<starlark::values::typing::type_compiled::matchers::IsAnyOfTwo<starlark::values::typing::type_compiled::matcher::TypeMatcherBox, starlark::values::typing::type_compiled::matcher::TypeMatcherBox>> as erased_serde::ser::Serialize>::erased_serialize Unexecuted instantiation: <starlark::values::typing::type_compiled::compiled::TypeCompiledImplAsStarlarkValue<starlark::values::typing::type_compiled::matchers::IsTupleElems1<starlark::values::typing::type_compiled::matcher::TypeMatcherBox>> as erased_serde::ser::Serialize>::erased_serialize Unexecuted instantiation: <starlark::values::typing::type_compiled::compiled::TypeCompiledImplAsStarlarkValue<starlark::values::typing::type_compiled::matchers::IsTupleElems2<starlark::values::typing::type_compiled::matchers::StarlarkTypeIdMatcher, starlark::values::typing::type_compiled::matchers::StarlarkTypeIdMatcher>> as erased_serde::ser::Serialize>::erased_serialize Unexecuted instantiation: <starlark::values::typing::type_compiled::compiled::TypeCompiledImplAsStarlarkValue<starlark::values::typing::type_compiled::matchers::IsTupleElems2<starlark::values::typing::type_compiled::matcher::TypeMatcherBox, starlark::values::typing::type_compiled::matcher::TypeMatcherBox>> as erased_serde::ser::Serialize>::erased_serialize Unexecuted instantiation: <starlark::values::typing::type_compiled::compiled::TypeCompiledImplAsStarlarkValue<starlark::values::typing::type_compiled::matchers::IsDictOf<starlark::values::typing::type_compiled::matchers::StarlarkTypeIdMatcher, starlark::values::typing::type_compiled::matchers::IsAny>> as erased_serde::ser::Serialize>::erased_serialize Unexecuted instantiation: <starlark::values::typing::type_compiled::compiled::TypeCompiledImplAsStarlarkValue<starlark::values::typing::type_compiled::matchers::IsDictOf<starlark::values::typing::type_compiled::matchers::StarlarkTypeIdMatcher, starlark::values::typing::type_compiled::matcher::TypeMatcherBox>> as erased_serde::ser::Serialize>::erased_serialize Unexecuted instantiation: <starlark::values::typing::type_compiled::compiled::TypeCompiledImplAsStarlarkValue<starlark::values::typing::type_compiled::matchers::IsDictOf<starlark::values::typing::type_compiled::matchers::IsAny, starlark::values::typing::type_compiled::matcher::TypeMatcherBox>> as erased_serde::ser::Serialize>::erased_serialize Unexecuted instantiation: <starlark::values::typing::type_compiled::compiled::TypeCompiledImplAsStarlarkValue<starlark::values::typing::type_compiled::matchers::IsDictOf<starlark::values::typing::type_compiled::matchers::IsStr, starlark::values::typing::type_compiled::matchers::IsAny>> as erased_serde::ser::Serialize>::erased_serialize Unexecuted instantiation: <starlark::values::typing::type_compiled::compiled::TypeCompiledImplAsStarlarkValue<starlark::values::typing::type_compiled::matchers::IsDictOf<starlark::values::typing::type_compiled::matchers::IsStr, starlark::values::typing::type_compiled::matcher::TypeMatcherBox>> as erased_serde::ser::Serialize>::erased_serialize Unexecuted instantiation: <starlark::values::typing::type_compiled::compiled::TypeCompiledImplAsStarlarkValue<starlark::values::typing::type_compiled::matchers::IsDictOf<starlark::values::typing::type_compiled::matcher::TypeMatcherBox, starlark::values::typing::type_compiled::matcher::TypeMatcherBox>> as erased_serde::ser::Serialize>::erased_serialize Unexecuted instantiation: <starlark::values::typing::type_compiled::compiled::TypeCompiledImplAsStarlarkValue<starlark::values::typing::type_compiled::matchers::IsDictOf<starlark::values::typing::type_compiled::matcher::TypeMatcherBox, starlark::values::typing::type_compiled::matchers::IsAny>> as erased_serde::ser::Serialize>::erased_serialize Unexecuted instantiation: <starlark::values::typing::type_compiled::compiled::TypeCompiledImplAsStarlarkValue<starlark::values::typing::type_compiled::matchers::IsListOf<starlark::values::typing::type_compiled::matchers::StarlarkTypeIdMatcher>> as erased_serde::ser::Serialize>::erased_serialize Unexecuted instantiation: <starlark::values::typing::type_compiled::compiled::TypeCompiledImplAsStarlarkValue<starlark::values::typing::type_compiled::matchers::IsListOf<starlark::values::typing::type_compiled::matchers::IsStr>> as erased_serde::ser::Serialize>::erased_serialize Unexecuted instantiation: <starlark::values::typing::type_compiled::compiled::TypeCompiledImplAsStarlarkValue<starlark::values::typing::type_compiled::matchers::IsListOf<starlark::values::typing::type_compiled::matcher::TypeMatcherBox>> as erased_serde::ser::Serialize>::erased_serialize Unexecuted instantiation: <starlark::values::typing::type_compiled::compiled::TypeCompiledImplAsStarlarkValue<starlark::values::typing::type_compiled::matchers::IsTupleOf<starlark::values::typing::type_compiled::matchers::StarlarkTypeIdMatcher>> as erased_serde::ser::Serialize>::erased_serialize Unexecuted instantiation: <starlark::values::typing::type_compiled::compiled::TypeCompiledImplAsStarlarkValue<starlark::values::typing::type_compiled::matchers::IsTupleOf<starlark::values::typing::type_compiled::matcher::TypeMatcherBox>> as erased_serde::ser::Serialize>::erased_serialize Unexecuted instantiation: <starlark::values::typing::type_compiled::compiled::TypeCompiledImplAsStarlarkValue<starlark::values::typing::type_compiled::compiled::DummyTypeMatcher> as erased_serde::ser::Serialize>::erased_serialize Unexecuted instantiation: <starlark::values::typing::type_compiled::compiled::TypeCompiledImplAsStarlarkValue<starlark::values::typing::type_compiled::matcher::TypeMatcherBox> as erased_serde::ser::Serialize>::erased_serialize Unexecuted instantiation: <starlark::values::typing::type_compiled::compiled::TypeCompiledImplAsStarlarkValue<starlark::values::typing::type_compiled::matchers::IsCallable> as erased_serde::ser::Serialize>::erased_serialize Unexecuted instantiation: <starlark::values::typing::type_compiled::compiled::TypeCompiledImplAsStarlarkValue<starlark::values::typing::type_compiled::matchers::IsIterable> as erased_serde::ser::Serialize>::erased_serialize Unexecuted instantiation: <starlark::values::typing::type_compiled::compiled::TypeCompiledImplAsStarlarkValue<starlark::values::typing::type_compiled::matchers::IsTupleElems> as erased_serde::ser::Serialize>::erased_serialize Unexecuted instantiation: <starlark::values::typing::type_compiled::compiled::TypeCompiledImplAsStarlarkValue<starlark::values::typing::type_compiled::matchers::IsTupleElems0> as erased_serde::ser::Serialize>::erased_serialize Unexecuted instantiation: <starlark::values::typing::type_compiled::compiled::TypeCompiledImplAsStarlarkValue<starlark::values::typing::type_compiled::matchers::StarlarkTypeIdMatcher> as erased_serde::ser::Serialize>::erased_serialize Unexecuted instantiation: <starlark::values::typing::type_compiled::compiled::TypeCompiledImplAsStarlarkValue<starlark::values::typing::type_compiled::matchers::IsAny> as erased_serde::ser::Serialize>::erased_serialize Unexecuted instantiation: <starlark::values::typing::type_compiled::compiled::TypeCompiledImplAsStarlarkValue<starlark::values::typing::type_compiled::matchers::IsInt> as erased_serde::ser::Serialize>::erased_serialize Unexecuted instantiation: <starlark::values::typing::type_compiled::compiled::TypeCompiledImplAsStarlarkValue<starlark::values::typing::type_compiled::matchers::IsStr> as erased_serde::ser::Serialize>::erased_serialize Unexecuted instantiation: <starlark::values::typing::type_compiled::compiled::TypeCompiledImplAsStarlarkValue<starlark::values::typing::type_compiled::matchers::IsBool> as erased_serde::ser::Serialize>::erased_serialize Unexecuted instantiation: <starlark::values::typing::type_compiled::compiled::TypeCompiledImplAsStarlarkValue<starlark::values::typing::type_compiled::matchers::IsDict> as erased_serde::ser::Serialize>::erased_serialize Unexecuted instantiation: <starlark::values::typing::type_compiled::compiled::TypeCompiledImplAsStarlarkValue<starlark::values::typing::type_compiled::matchers::IsList> as erased_serde::ser::Serialize>::erased_serialize Unexecuted instantiation: <starlark::values::typing::type_compiled::compiled::TypeCompiledImplAsStarlarkValue<starlark::values::typing::type_compiled::matchers::IsName> as erased_serde::ser::Serialize>::erased_serialize Unexecuted instantiation: <starlark::values::typing::type_compiled::compiled::TypeCompiledImplAsStarlarkValue<starlark::values::typing::type_compiled::matchers::IsNone> as erased_serde::ser::Serialize>::erased_serialize Unexecuted instantiation: <starlark::values::typing::type_compiled::compiled::TypeCompiledImplAsStarlarkValue<starlark::values::typing::type_compiled::matchers::IsType> as erased_serde::ser::Serialize>::erased_serialize Unexecuted instantiation: <starlark::values::typing::type_compiled::compiled::TypeCompiledImplAsStarlarkValue<starlark::values::typing::type_compiled::matchers::IsAnyOf> as erased_serde::ser::Serialize>::erased_serialize Unexecuted instantiation: <starlark::values::typing::type_compiled::compiled::TypeCompiledImplAsStarlarkValue<starlark::values::typing::type_compiled::matchers::IsNever> as erased_serde::ser::Serialize>::erased_serialize Unexecuted instantiation: <starlark::values::typing::type_compiled::compiled::TypeCompiledImplAsStarlarkValue<starlark::values::types::enumeration::matcher::EnumTypeMatcher> as erased_serde::ser::Serialize>::erased_serialize Unexecuted instantiation: <starlark::values::typing::type_compiled::compiled::TypeCompiledImplAsStarlarkValue<starlark::values::types::record::matcher::RecordTypeMatcher> as erased_serde::ser::Serialize>::erased_serialize Unexecuted instantiation: <starlark::values::typing::type_compiled::compiled::TypeCompiledImplAsStarlarkValue<<starlark::typing::structs::TyStruct as starlark::typing::custom::TyCustomImpl>::matcher::StructMatcher> as erased_serde::ser::Serialize>::erased_serialize Unexecuted instantiation: <&starlark::values::layout::value::FrozenValue as erased_serde::ser::Serialize>::erased_serialize Unexecuted instantiation: <&starlark::values::layout::value::Value as erased_serde::ser::Serialize>::erased_serialize Unexecuted instantiation: <&&starlark::values::layout::value::Value as erased_serde::ser::Serialize>::erased_serialize Unexecuted instantiation: <starlark::values::layout::value_captured::ValueCaptured as erased_serde::ser::Serialize>::erased_serialize Unexecuted instantiation: <starlark::values::layout::value_captured::FrozenValueCaptured as erased_serde::ser::Serialize>::erased_serialize Unexecuted instantiation: <starlark::values::types::structs::value::StructGen<starlark::values::layout::value::FrozenValue> as erased_serde::ser::Serialize>::erased_serialize Unexecuted instantiation: <starlark::values::types::structs::value::StructGen<starlark::values::layout::value::Value> as erased_serde::ser::Serialize>::erased_serialize Unexecuted instantiation: <starlark::values::types::bigint::StarlarkBigInt as erased_serde::ser::Serialize>::erased_serialize Unexecuted instantiation: <starlark::values::types::enumeration::enum_type::EnumTypeGen<starlark::values::layout::value::FrozenValue> as erased_serde::ser::Serialize>::erased_serialize Unexecuted instantiation: <starlark::values::types::enumeration::enum_type::EnumTypeGen<starlark::values::layout::value::Value> as erased_serde::ser::Serialize>::erased_serialize Unexecuted instantiation: <starlark::values::types::string::iter::StringIterableGen<starlark::values::layout::value::FrozenValue> as erased_serde::ser::Serialize>::erased_serialize Unexecuted instantiation: <starlark::values::types::string::iter::StringIterableGen<starlark::values::layout::value::Value> as erased_serde::ser::Serialize>::erased_serialize Unexecuted instantiation: <starlark::values::types::record::record_type::RecordTypeGen<starlark::values::layout::value::FrozenValue> as erased_serde::ser::Serialize>::erased_serialize Unexecuted instantiation: <starlark::values::types::record::record_type::RecordTypeGen<starlark::values::layout::value::Value> as erased_serde::ser::Serialize>::erased_serialize Unexecuted instantiation: <starlark::values::types::record::field::FieldGen<starlark::values::layout::value::FrozenValue> as erased_serde::ser::Serialize>::erased_serialize Unexecuted instantiation: <starlark::values::types::record::field::FieldGen<starlark::values::layout::value::Value> as erased_serde::ser::Serialize>::erased_serialize Unexecuted instantiation: <starlark::values::types::bool::StarlarkBool as erased_serde::ser::Serialize>::erased_serialize Unexecuted instantiation: <starlark::values::types::dict::value::DictGen<core::cell::RefCell<starlark::values::types::dict::value::Dict>> as erased_serde::ser::Serialize>::erased_serialize Unexecuted instantiation: <starlark::values::types::dict::value::DictGen<starlark::values::types::dict::value::FrozenDictData> as erased_serde::ser::Serialize>::erased_serialize Unexecuted instantiation: <starlark::values::types::function::BoundMethodGen<starlark::values::layout::value::FrozenValue> as erased_serde::ser::Serialize>::erased_serialize Unexecuted instantiation: <starlark::values::types::function::BoundMethodGen<starlark::values::layout::value::Value> as erased_serde::ser::Serialize>::erased_serialize Unexecuted instantiation: <starlark::values::types::function::NativeMethod as erased_serde::ser::Serialize>::erased_serialize Unexecuted instantiation: <starlark::values::types::function::NativeFunction as erased_serde::ser::Serialize>::erased_serialize Unexecuted instantiation: <starlark::values::types::function::NativeAttribute as erased_serde::ser::Serialize>::erased_serialize Unexecuted instantiation: <starlark::values::types::any::StarlarkAny<starlark::values::layout::typed::FrozenValueTyped<starlark::values::types::string::str_type::StarlarkStr>> as erased_serde::ser::Serialize>::erased_serialize Unexecuted instantiation: <starlark::values::types::any::StarlarkAny<<starlark::values::layout::heap::heap_type::FrozenHeap>::alloc_any_debug_type_name::DebugValue<starlark::values::types::enumeration::enum_type::enum_type_methods::build::Impl_values>> as erased_serde::ser::Serialize>::erased_serialize Unexecuted instantiation: <starlark::values::types::any::StarlarkAny<<starlark::values::layout::heap::heap_type::FrozenHeap>::alloc_any_debug_type_name::DebugValue<starlark::stdlib::dict::dict_methods::build::Impl_clear>> as erased_serde::ser::Serialize>::erased_serialize Unexecuted instantiation: <starlark::values::types::any::StarlarkAny<<starlark::values::layout::heap::heap_type::FrozenHeap>::alloc_any_debug_type_name::DebugValue<starlark::stdlib::dict::dict_methods::build::Impl_items>> as erased_serde::ser::Serialize>::erased_serialize Unexecuted instantiation: <starlark::values::types::any::StarlarkAny<<starlark::values::layout::heap::heap_type::FrozenHeap>::alloc_any_debug_type_name::DebugValue<starlark::stdlib::dict::dict_methods::build::Impl_update>> as erased_serde::ser::Serialize>::erased_serialize Unexecuted instantiation: <starlark::values::types::any::StarlarkAny<<starlark::values::layout::heap::heap_type::FrozenHeap>::alloc_any_debug_type_name::DebugValue<starlark::stdlib::dict::dict_methods::build::Impl_values>> as erased_serde::ser::Serialize>::erased_serialize Unexecuted instantiation: <starlark::values::types::any::StarlarkAny<<starlark::values::layout::heap::heap_type::FrozenHeap>::alloc_any_debug_type_name::DebugValue<starlark::stdlib::dict::dict_methods::build::Impl_popitem>> as erased_serde::ser::Serialize>::erased_serialize Unexecuted instantiation: <starlark::values::types::any::StarlarkAny<<starlark::values::layout::heap::heap_type::FrozenHeap>::alloc_any_debug_type_name::DebugValue<starlark::stdlib::dict::dict_methods::build::Impl_setdefault>> as erased_serde::ser::Serialize>::erased_serialize Unexecuted instantiation: <starlark::values::types::any::StarlarkAny<<starlark::values::layout::heap::heap_type::FrozenHeap>::alloc_any_debug_type_name::DebugValue<starlark::stdlib::dict::dict_methods::build::Impl_get>> as erased_serde::ser::Serialize>::erased_serialize Unexecuted instantiation: <starlark::values::types::any::StarlarkAny<<starlark::values::layout::heap::heap_type::FrozenHeap>::alloc_any_debug_type_name::DebugValue<starlark::stdlib::dict::dict_methods::build::Impl_pop>> as erased_serde::ser::Serialize>::erased_serialize Unexecuted instantiation: <starlark::values::types::any::StarlarkAny<<starlark::values::layout::heap::heap_type::FrozenHeap>::alloc_any_debug_type_name::DebugValue<starlark::stdlib::dict::dict_methods::build::Impl_keys>> as erased_serde::ser::Serialize>::erased_serialize Unexecuted instantiation: <starlark::values::types::any::StarlarkAny<<starlark::values::layout::heap::heap_type::FrozenHeap>::alloc_any_debug_type_name::DebugValue<starlark::stdlib::list::list_methods::build::Impl_clear>> as erased_serde::ser::Serialize>::erased_serialize Unexecuted instantiation: <starlark::values::types::any::StarlarkAny<<starlark::values::layout::heap::heap_type::FrozenHeap>::alloc_any_debug_type_name::DebugValue<starlark::stdlib::list::list_methods::build::Impl_index>> as erased_serde::ser::Serialize>::erased_serialize Unexecuted instantiation: <starlark::values::types::any::StarlarkAny<<starlark::values::layout::heap::heap_type::FrozenHeap>::alloc_any_debug_type_name::DebugValue<starlark::stdlib::list::list_methods::build::Impl_append>> as erased_serde::ser::Serialize>::erased_serialize Unexecuted instantiation: <starlark::values::types::any::StarlarkAny<<starlark::values::layout::heap::heap_type::FrozenHeap>::alloc_any_debug_type_name::DebugValue<starlark::stdlib::list::list_methods::build::Impl_extend>> as erased_serde::ser::Serialize>::erased_serialize Unexecuted instantiation: <starlark::values::types::any::StarlarkAny<<starlark::values::layout::heap::heap_type::FrozenHeap>::alloc_any_debug_type_name::DebugValue<starlark::stdlib::list::list_methods::build::Impl_insert>> as erased_serde::ser::Serialize>::erased_serialize Unexecuted instantiation: <starlark::values::types::any::StarlarkAny<<starlark::values::layout::heap::heap_type::FrozenHeap>::alloc_any_debug_type_name::DebugValue<starlark::stdlib::list::list_methods::build::Impl_remove>> as erased_serde::ser::Serialize>::erased_serialize Unexecuted instantiation: <starlark::values::types::any::StarlarkAny<<starlark::values::layout::heap::heap_type::FrozenHeap>::alloc_any_debug_type_name::DebugValue<starlark::stdlib::list::list_methods::build::Impl_pop>> as erased_serde::ser::Serialize>::erased_serialize Unexecuted instantiation: <starlark::values::types::any::StarlarkAny<<starlark::values::layout::heap::heap_type::FrozenHeap>::alloc_any_debug_type_name::DebugValue<starlark::stdlib::string::string_methods::build::Impl_count>> as erased_serde::ser::Serialize>::erased_serialize Unexecuted instantiation: <starlark::values::types::any::StarlarkAny<<starlark::values::layout::heap::heap_type::FrozenHeap>::alloc_any_debug_type_name::DebugValue<starlark::stdlib::string::string_methods::build::Impl_elems>> as erased_serde::ser::Serialize>::erased_serialize Unexecuted instantiation: <starlark::values::types::any::StarlarkAny<<starlark::values::layout::heap::heap_type::FrozenHeap>::alloc_any_debug_type_name::DebugValue<starlark::stdlib::string::string_methods::build::Impl_index>> as erased_serde::ser::Serialize>::erased_serialize Unexecuted instantiation: <starlark::values::types::any::StarlarkAny<<starlark::values::layout::heap::heap_type::FrozenHeap>::alloc_any_debug_type_name::DebugValue<starlark::stdlib::string::string_methods::build::Impl_lower>> as erased_serde::ser::Serialize>::erased_serialize Unexecuted instantiation: <starlark::values::types::any::StarlarkAny<<starlark::values::layout::heap::heap_type::FrozenHeap>::alloc_any_debug_type_name::DebugValue<starlark::stdlib::string::string_methods::build::Impl_rfind>> as erased_serde::ser::Serialize>::erased_serialize Unexecuted instantiation: <starlark::values::types::any::StarlarkAny<<starlark::values::layout::heap::heap_type::FrozenHeap>::alloc_any_debug_type_name::DebugValue<starlark::stdlib::string::string_methods::build::Impl_split>> as erased_serde::ser::Serialize>::erased_serialize Unexecuted instantiation: <starlark::values::types::any::StarlarkAny<<starlark::values::layout::heap::heap_type::FrozenHeap>::alloc_any_debug_type_name::DebugValue<starlark::stdlib::string::string_methods::build::Impl_strip>> as erased_serde::ser::Serialize>::erased_serialize Unexecuted instantiation: <starlark::values::types::any::StarlarkAny<<starlark::values::layout::heap::heap_type::FrozenHeap>::alloc_any_debug_type_name::DebugValue<starlark::stdlib::string::string_methods::build::Impl_title>> as erased_serde::ser::Serialize>::erased_serialize Unexecuted instantiation: <starlark::values::types::any::StarlarkAny<<starlark::values::layout::heap::heap_type::FrozenHeap>::alloc_any_debug_type_name::DebugValue<starlark::stdlib::string::string_methods::build::Impl_upper>> as erased_serde::ser::Serialize>::erased_serialize Unexecuted instantiation: <starlark::values::types::any::StarlarkAny<<starlark::values::layout::heap::heap_type::FrozenHeap>::alloc_any_debug_type_name::DebugValue<starlark::stdlib::string::string_methods::build::Impl_format>> as erased_serde::ser::Serialize>::erased_serialize Unexecuted instantiation: <starlark::values::types::any::StarlarkAny<<starlark::values::layout::heap::heap_type::FrozenHeap>::alloc_any_debug_type_name::DebugValue<starlark::stdlib::string::string_methods::build::Impl_lstrip>> as erased_serde::ser::Serialize>::erased_serialize Unexecuted instantiation: <starlark::values::types::any::StarlarkAny<<starlark::values::layout::heap::heap_type::FrozenHeap>::alloc_any_debug_type_name::DebugValue<starlark::stdlib::string::string_methods::build::Impl_rindex>> as erased_serde::ser::Serialize>::erased_serialize Unexecuted instantiation: <starlark::values::types::any::StarlarkAny<<starlark::values::layout::heap::heap_type::FrozenHeap>::alloc_any_debug_type_name::DebugValue<starlark::stdlib::string::string_methods::build::Impl_rsplit>> as erased_serde::ser::Serialize>::erased_serialize Unexecuted instantiation: <starlark::values::types::any::StarlarkAny<<starlark::values::layout::heap::heap_type::FrozenHeap>::alloc_any_debug_type_name::DebugValue<starlark::stdlib::string::string_methods::build::Impl_rstrip>> as erased_serde::ser::Serialize>::erased_serialize Unexecuted instantiation: <starlark::values::types::any::StarlarkAny<<starlark::values::layout::heap::heap_type::FrozenHeap>::alloc_any_debug_type_name::DebugValue<starlark::stdlib::string::string_methods::build::Impl_isalnum>> as erased_serde::ser::Serialize>::erased_serialize Unexecuted instantiation: <starlark::values::types::any::StarlarkAny<<starlark::values::layout::heap::heap_type::FrozenHeap>::alloc_any_debug_type_name::DebugValue<starlark::stdlib::string::string_methods::build::Impl_isalpha>> as erased_serde::ser::Serialize>::erased_serialize Unexecuted instantiation: <starlark::values::types::any::StarlarkAny<<starlark::values::layout::heap::heap_type::FrozenHeap>::alloc_any_debug_type_name::DebugValue<starlark::stdlib::string::string_methods::build::Impl_isdigit>> as erased_serde::ser::Serialize>::erased_serialize Unexecuted instantiation: <starlark::values::types::any::StarlarkAny<<starlark::values::layout::heap::heap_type::FrozenHeap>::alloc_any_debug_type_name::DebugValue<starlark::stdlib::string::string_methods::build::Impl_islower>> as erased_serde::ser::Serialize>::erased_serialize Unexecuted instantiation: <starlark::values::types::any::StarlarkAny<<starlark::values::layout::heap::heap_type::FrozenHeap>::alloc_any_debug_type_name::DebugValue<starlark::stdlib::string::string_methods::build::Impl_isspace>> as erased_serde::ser::Serialize>::erased_serialize Unexecuted instantiation: <starlark::values::types::any::StarlarkAny<<starlark::values::layout::heap::heap_type::FrozenHeap>::alloc_any_debug_type_name::DebugValue<starlark::stdlib::string::string_methods::build::Impl_istitle>> as erased_serde::ser::Serialize>::erased_serialize Unexecuted instantiation: <starlark::values::types::any::StarlarkAny<<starlark::values::layout::heap::heap_type::FrozenHeap>::alloc_any_debug_type_name::DebugValue<starlark::stdlib::string::string_methods::build::Impl_isupper>> as erased_serde::ser::Serialize>::erased_serialize Unexecuted instantiation: <starlark::values::types::any::StarlarkAny<<starlark::values::layout::heap::heap_type::FrozenHeap>::alloc_any_debug_type_name::DebugValue<starlark::stdlib::string::string_methods::build::Impl_replace>> as erased_serde::ser::Serialize>::erased_serialize Unexecuted instantiation: <starlark::values::types::any::StarlarkAny<<starlark::values::layout::heap::heap_type::FrozenHeap>::alloc_any_debug_type_name::DebugValue<starlark::stdlib::string::string_methods::build::Impl_endswith>> as erased_serde::ser::Serialize>::erased_serialize Unexecuted instantiation: <starlark::values::types::any::StarlarkAny<<starlark::values::layout::heap::heap_type::FrozenHeap>::alloc_any_debug_type_name::DebugValue<starlark::stdlib::string::string_methods::build::Impl_partition>> as erased_serde::ser::Serialize>::erased_serialize Unexecuted instantiation: <starlark::values::types::any::StarlarkAny<<starlark::values::layout::heap::heap_type::FrozenHeap>::alloc_any_debug_type_name::DebugValue<starlark::stdlib::string::string_methods::build::Impl_capitalize>> as erased_serde::ser::Serialize>::erased_serialize Unexecuted instantiation: <starlark::values::types::any::StarlarkAny<<starlark::values::layout::heap::heap_type::FrozenHeap>::alloc_any_debug_type_name::DebugValue<starlark::stdlib::string::string_methods::build::Impl_codepoints>> as erased_serde::ser::Serialize>::erased_serialize Unexecuted instantiation: <starlark::values::types::any::StarlarkAny<<starlark::values::layout::heap::heap_type::FrozenHeap>::alloc_any_debug_type_name::DebugValue<starlark::stdlib::string::string_methods::build::Impl_rpartition>> as erased_serde::ser::Serialize>::erased_serialize Unexecuted instantiation: <starlark::values::types::any::StarlarkAny<<starlark::values::layout::heap::heap_type::FrozenHeap>::alloc_any_debug_type_name::DebugValue<starlark::stdlib::string::string_methods::build::Impl_splitlines>> as erased_serde::ser::Serialize>::erased_serialize Unexecuted instantiation: <starlark::values::types::any::StarlarkAny<<starlark::values::layout::heap::heap_type::FrozenHeap>::alloc_any_debug_type_name::DebugValue<starlark::stdlib::string::string_methods::build::Impl_startswith>> as erased_serde::ser::Serialize>::erased_serialize Unexecuted instantiation: <starlark::values::types::any::StarlarkAny<<starlark::values::layout::heap::heap_type::FrozenHeap>::alloc_any_debug_type_name::DebugValue<starlark::stdlib::string::string_methods::build::Impl_removeprefix>> as erased_serde::ser::Serialize>::erased_serialize Unexecuted instantiation: <starlark::values::types::any::StarlarkAny<<starlark::values::layout::heap::heap_type::FrozenHeap>::alloc_any_debug_type_name::DebugValue<starlark::stdlib::string::string_methods::build::Impl_removesuffix>> as erased_serde::ser::Serialize>::erased_serialize Unexecuted instantiation: <starlark::values::types::any::StarlarkAny<<starlark::values::layout::heap::heap_type::FrozenHeap>::alloc_any_debug_type_name::DebugValue<starlark::stdlib::string::string_methods::build::Impl_find>> as erased_serde::ser::Serialize>::erased_serialize Unexecuted instantiation: <starlark::values::types::any::StarlarkAny<<starlark::values::layout::heap::heap_type::FrozenHeap>::alloc_any_debug_type_name::DebugValue<starlark::stdlib::string::string_methods::build::Impl_join>> as erased_serde::ser::Serialize>::erased_serialize Unexecuted instantiation: <starlark::values::types::any::StarlarkAny<<starlark::values::layout::heap::heap_type::FrozenHeap>::alloc_any_debug_type_name::DebugValue<starlark::values::typing::type_compiled::compiled::type_compiled_methods::build::Impl_matches>> as erased_serde::ser::Serialize>::erased_serialize Unexecuted instantiation: <starlark::values::types::any::StarlarkAny<<starlark::values::layout::heap::heap_type::FrozenHeap>::alloc_any_debug_type_name::DebugValue<starlark::values::typing::type_compiled::compiled::type_compiled_methods::build::Impl_check_matches>> as erased_serde::ser::Serialize>::erased_serialize Unexecuted instantiation: <starlark::values::types::any::StarlarkAny<<starlark::values::layout::heap::heap_type::FrozenHeap>::alloc_any_debug_type_name::DebugValue<starlark::values::types::enumeration::value::enum_value_methods::build::index>> as erased_serde::ser::Serialize>::erased_serialize Unexecuted instantiation: <starlark::values::types::any::StarlarkAny<<starlark::values::layout::heap::heap_type::FrozenHeap>::alloc_any_debug_type_name::DebugValue<starlark::values::types::enumeration::value::enum_value_methods::build::value>> as erased_serde::ser::Serialize>::erased_serialize Unexecuted instantiation: <starlark::values::types::any::StarlarkAny<<starlark::values::layout::heap::heap_type::FrozenHeap>::alloc_any_debug_type_name::DebugValue<starlark::values::types::enumeration::enum_type::enum_type_methods::build::type>> as erased_serde::ser::Serialize>::erased_serialize Unexecuted instantiation: <starlark::values::types::any::StarlarkAny<<starlark::values::layout::heap::heap_type::FrozenHeap>::alloc_any_debug_type_name::DebugValue<starlark::values::types::record::record_type::record_type_methods::build::type>> as erased_serde::ser::Serialize>::erased_serialize Unexecuted instantiation: <starlark::values::types::any::StarlarkAny<<starlark::values::layout::heap::heap_type::FrozenHeap>::alloc_any_debug_type_name::DebugValue<starlark::stdlib::call_stack::stack_frame_methods::build::module_path>> as erased_serde::ser::Serialize>::erased_serialize Unexecuted instantiation: <starlark::values::types::any::StarlarkAny<<starlark::values::layout::heap::heap_type::FrozenHeap>::alloc_any_debug_type_name::DebugValue<starlark::stdlib::call_stack::stack_frame_methods::build::func_name>> as erased_serde::ser::Serialize>::erased_serialize Unexecuted instantiation: <starlark::values::types::any::StarlarkAny<starlark_syntax::codemap::CodeMap> as erased_serde::ser::Serialize>::erased_serialize Unexecuted instantiation: <starlark::values::types::any::StarlarkAny<starlark::environment::globals::Globals> as erased_serde::ser::Serialize>::erased_serialize Unexecuted instantiation: <starlark::values::types::any::StarlarkAny<starlark::environment::modules::FrozenModuleData> as erased_serde::ser::Serialize>::erased_serialize Unexecuted instantiation: <starlark::values::types::any::StarlarkAny<starlark::eval::bc::stack_ptr::BcSlotOut> as erased_serde::ser::Serialize>::erased_serialize Unexecuted instantiation: <starlark::values::types::any::StarlarkAny<starlark::eval::runtime::frame_span::FrameSpan> as erased_serde::ser::Serialize>::erased_serialize Unexecuted instantiation: <starlark::values::types::any::StarlarkAny<starlark::eval::runtime::inlined_frame::InlinedFrame> as erased_serde::ser::Serialize>::erased_serialize Unexecuted instantiation: <starlark::values::types::any::StarlarkAny<starlark::eval::runtime::slots::LocalSlotId> as erased_serde::ser::Serialize>::erased_serialize Unexecuted instantiation: <starlark::values::types::any::StarlarkAny<starlark::eval::compiler::def::CopySlotFromParent> as erased_serde::ser::Serialize>::erased_serialize Unexecuted instantiation: <starlark::values::types::any::StarlarkAny<starlark::eval::compiler::def::DefInfo> as erased_serde::ser::Serialize>::erased_serialize Unexecuted instantiation: <starlark::eval::compiler::def::DefGen<starlark::values::layout::value::FrozenValue> as erased_serde::ser::Serialize>::erased_serialize Unexecuted instantiation: <starlark::eval::compiler::def::DefGen<starlark::values::layout::value::Value> as erased_serde::ser::Serialize>::erased_serialize Unexecuted instantiation: <starlark::stdlib::partial::PartialGen<starlark::values::layout::value::FrozenValue, starlark::values::layout::typed::FrozenValueTyped<starlark::values::types::string::str_type::StarlarkStr>> as erased_serde::ser::Serialize>::erased_serialize Unexecuted instantiation: <starlark::stdlib::partial::PartialGen<starlark::values::layout::value::Value, starlark::values::layout::typed::ValueTyped<starlark::values::types::string::str_type::StarlarkStr>> as erased_serde::ser::Serialize>::erased_serialize Unexecuted instantiation: <starlark::values::types::array::Array as erased_serde::ser::Serialize>::erased_serialize Unexecuted instantiation: <starlark::values::types::range::Range as erased_serde::ser::Serialize>::erased_serialize Unexecuted instantiation: <starlark::stdlib::call_stack::StackFrame as erased_serde::ser::Serialize>::erased_serialize Unexecuted instantiation: <starlark::values::types::ellipsis::Ellipsis as erased_serde::ser::Serialize>::erased_serialize Unexecuted instantiation: <starlark::values::types::any_array::AnyArray<starlark::values::layout::typed::FrozenValueTyped<starlark::values::types::string::str_type::StarlarkStr>> as erased_serde::ser::Serialize>::erased_serialize Unexecuted instantiation: <starlark::values::types::any_array::AnyArray<starlark::eval::bc::stack_ptr::BcSlotOut> as erased_serde::ser::Serialize>::erased_serialize Unexecuted instantiation: <starlark::values::types::any_array::AnyArray<starlark::eval::runtime::slots::LocalSlotId> as erased_serde::ser::Serialize>::erased_serialize Unexecuted instantiation: <starlark::values::types::any_array::AnyArray<starlark::eval::compiler::def::CopySlotFromParent> as erased_serde::ser::Serialize>::erased_serialize Unexecuted instantiation: <starlark::values::layout::heap::call_enter_exit::CallExit<starlark::values::layout::heap::call_enter_exit::NoDrop> as erased_serde::ser::Serialize>::erased_serialize Unexecuted instantiation: <starlark::values::layout::heap::call_enter_exit::CallExit<starlark::values::layout::heap::call_enter_exit::NeedsDrop> as erased_serde::ser::Serialize>::erased_serialize Unexecuted instantiation: <starlark::values::layout::heap::call_enter_exit::CallEnter<starlark::values::layout::heap::call_enter_exit::NoDrop> as erased_serde::ser::Serialize>::erased_serialize Unexecuted instantiation: <starlark::values::layout::heap::call_enter_exit::CallEnter<starlark::values::layout::heap::call_enter_exit::NeedsDrop> as erased_serde::ser::Serialize>::erased_serialize Unexecuted instantiation: <_ as erased_serde::ser::Serialize>::erased_serialize |
242 | | } |
243 | | |
244 | | mod erase { |
245 | | pub struct Serializer<S> { |
246 | | pub(crate) state: Option<S>, |
247 | | } |
248 | | |
249 | | impl<S> Serializer<S> { |
250 | 0 | pub(crate) fn take(&mut self) -> S { |
251 | 0 | self.state.take().unwrap() |
252 | 0 | } Unexecuted instantiation: <erased_serde::ser::erase::Serializer<serde_json::ser::MapKeySerializer<&mut alloc::vec::Vec<u8>, serde_json::ser::CompactFormatter>>>::take Unexecuted instantiation: <erased_serde::ser::erase::Serializer<serde_json::value::ser::Serializer>>::take Unexecuted instantiation: <erased_serde::ser::erase::Serializer<serde_json::value::ser::MapKeySerializer>>::take Unexecuted instantiation: <erased_serde::ser::erase::Serializer<&mut dyn erased_serde::ser::Serializer>>::take Unexecuted instantiation: <erased_serde::ser::erase::Serializer<&mut serde_json::ser::Serializer<&mut alloc::vec::Vec<u8>>>>::take Unexecuted instantiation: <erased_serde::ser::erase::Serializer<_>>::take |
253 | | |
254 | 0 | pub(crate) fn as_ref(&self) -> &S { |
255 | 0 | self.state.as_ref().unwrap() |
256 | 0 | } Unexecuted instantiation: <erased_serde::ser::erase::Serializer<serde_json::ser::MapKeySerializer<&mut alloc::vec::Vec<u8>, serde_json::ser::CompactFormatter>>>::as_ref Unexecuted instantiation: <erased_serde::ser::erase::Serializer<serde_json::value::ser::Serializer>>::as_ref Unexecuted instantiation: <erased_serde::ser::erase::Serializer<serde_json::value::ser::MapKeySerializer>>::as_ref Unexecuted instantiation: <erased_serde::ser::erase::Serializer<&mut dyn erased_serde::ser::Serializer>>::as_ref Unexecuted instantiation: <erased_serde::ser::erase::Serializer<&mut serde_json::ser::Serializer<&mut alloc::vec::Vec<u8>>>>::as_ref Unexecuted instantiation: <erased_serde::ser::erase::Serializer<_>>::as_ref |
257 | | } |
258 | | } |
259 | | |
260 | | impl<T> Serializer for erase::Serializer<T> |
261 | | where |
262 | | T: serde::Serializer, |
263 | | { |
264 | 0 | fn erased_serialize_bool(&mut self, v: bool) -> Result<Ok, Error> { |
265 | 0 | unsafe { |
266 | 0 | self.take() |
267 | 0 | .serialize_bool(v) |
268 | 0 | .unsafe_map(Ok::new) |
269 | 0 | .map_err(erase) |
270 | 0 | } |
271 | 0 | } Unexecuted instantiation: <erased_serde::ser::erase::Serializer<serde_json::ser::MapKeySerializer<&mut alloc::vec::Vec<u8>, serde_json::ser::CompactFormatter>> as erased_serde::ser::Serializer>::erased_serialize_bool Unexecuted instantiation: <erased_serde::ser::erase::Serializer<serde_json::value::ser::Serializer> as erased_serde::ser::Serializer>::erased_serialize_bool Unexecuted instantiation: <erased_serde::ser::erase::Serializer<serde_json::value::ser::MapKeySerializer> as erased_serde::ser::Serializer>::erased_serialize_bool Unexecuted instantiation: <erased_serde::ser::erase::Serializer<&mut dyn erased_serde::ser::Serializer> as erased_serde::ser::Serializer>::erased_serialize_bool Unexecuted instantiation: <erased_serde::ser::erase::Serializer<&mut serde_json::ser::Serializer<&mut alloc::vec::Vec<u8>>> as erased_serde::ser::Serializer>::erased_serialize_bool Unexecuted instantiation: <erased_serde::ser::erase::Serializer<_> as erased_serde::ser::Serializer>::erased_serialize_bool |
272 | | |
273 | 0 | fn erased_serialize_i8(&mut self, v: i8) -> Result<Ok, Error> { |
274 | 0 | unsafe { |
275 | 0 | self.take() |
276 | 0 | .serialize_i8(v) |
277 | 0 | .unsafe_map(Ok::new) |
278 | 0 | .map_err(erase) |
279 | 0 | } |
280 | 0 | } Unexecuted instantiation: <erased_serde::ser::erase::Serializer<serde_json::ser::MapKeySerializer<&mut alloc::vec::Vec<u8>, serde_json::ser::CompactFormatter>> as erased_serde::ser::Serializer>::erased_serialize_i8 Unexecuted instantiation: <erased_serde::ser::erase::Serializer<serde_json::value::ser::Serializer> as erased_serde::ser::Serializer>::erased_serialize_i8 Unexecuted instantiation: <erased_serde::ser::erase::Serializer<serde_json::value::ser::MapKeySerializer> as erased_serde::ser::Serializer>::erased_serialize_i8 Unexecuted instantiation: <erased_serde::ser::erase::Serializer<&mut dyn erased_serde::ser::Serializer> as erased_serde::ser::Serializer>::erased_serialize_i8 Unexecuted instantiation: <erased_serde::ser::erase::Serializer<&mut serde_json::ser::Serializer<&mut alloc::vec::Vec<u8>>> as erased_serde::ser::Serializer>::erased_serialize_i8 Unexecuted instantiation: <erased_serde::ser::erase::Serializer<_> as erased_serde::ser::Serializer>::erased_serialize_i8 |
281 | | |
282 | 0 | fn erased_serialize_i16(&mut self, v: i16) -> Result<Ok, Error> { |
283 | 0 | unsafe { |
284 | 0 | self.take() |
285 | 0 | .serialize_i16(v) |
286 | 0 | .unsafe_map(Ok::new) |
287 | 0 | .map_err(erase) |
288 | 0 | } |
289 | 0 | } Unexecuted instantiation: <erased_serde::ser::erase::Serializer<serde_json::ser::MapKeySerializer<&mut alloc::vec::Vec<u8>, serde_json::ser::CompactFormatter>> as erased_serde::ser::Serializer>::erased_serialize_i16 Unexecuted instantiation: <erased_serde::ser::erase::Serializer<serde_json::value::ser::Serializer> as erased_serde::ser::Serializer>::erased_serialize_i16 Unexecuted instantiation: <erased_serde::ser::erase::Serializer<serde_json::value::ser::MapKeySerializer> as erased_serde::ser::Serializer>::erased_serialize_i16 Unexecuted instantiation: <erased_serde::ser::erase::Serializer<&mut dyn erased_serde::ser::Serializer> as erased_serde::ser::Serializer>::erased_serialize_i16 Unexecuted instantiation: <erased_serde::ser::erase::Serializer<&mut serde_json::ser::Serializer<&mut alloc::vec::Vec<u8>>> as erased_serde::ser::Serializer>::erased_serialize_i16 Unexecuted instantiation: <erased_serde::ser::erase::Serializer<_> as erased_serde::ser::Serializer>::erased_serialize_i16 |
290 | | |
291 | 0 | fn erased_serialize_i32(&mut self, v: i32) -> Result<Ok, Error> { |
292 | 0 | unsafe { |
293 | 0 | self.take() |
294 | 0 | .serialize_i32(v) |
295 | 0 | .unsafe_map(Ok::new) |
296 | 0 | .map_err(erase) |
297 | 0 | } |
298 | 0 | } Unexecuted instantiation: <erased_serde::ser::erase::Serializer<serde_json::ser::MapKeySerializer<&mut alloc::vec::Vec<u8>, serde_json::ser::CompactFormatter>> as erased_serde::ser::Serializer>::erased_serialize_i32 Unexecuted instantiation: <erased_serde::ser::erase::Serializer<serde_json::value::ser::Serializer> as erased_serde::ser::Serializer>::erased_serialize_i32 Unexecuted instantiation: <erased_serde::ser::erase::Serializer<serde_json::value::ser::MapKeySerializer> as erased_serde::ser::Serializer>::erased_serialize_i32 Unexecuted instantiation: <erased_serde::ser::erase::Serializer<&mut dyn erased_serde::ser::Serializer> as erased_serde::ser::Serializer>::erased_serialize_i32 Unexecuted instantiation: <erased_serde::ser::erase::Serializer<&mut serde_json::ser::Serializer<&mut alloc::vec::Vec<u8>>> as erased_serde::ser::Serializer>::erased_serialize_i32 Unexecuted instantiation: <erased_serde::ser::erase::Serializer<_> as erased_serde::ser::Serializer>::erased_serialize_i32 |
299 | | |
300 | 0 | fn erased_serialize_i64(&mut self, v: i64) -> Result<Ok, Error> { |
301 | 0 | unsafe { |
302 | 0 | self.take() |
303 | 0 | .serialize_i64(v) |
304 | 0 | .unsafe_map(Ok::new) |
305 | 0 | .map_err(erase) |
306 | 0 | } |
307 | 0 | } Unexecuted instantiation: <erased_serde::ser::erase::Serializer<serde_json::ser::MapKeySerializer<&mut alloc::vec::Vec<u8>, serde_json::ser::CompactFormatter>> as erased_serde::ser::Serializer>::erased_serialize_i64 Unexecuted instantiation: <erased_serde::ser::erase::Serializer<serde_json::value::ser::Serializer> as erased_serde::ser::Serializer>::erased_serialize_i64 Unexecuted instantiation: <erased_serde::ser::erase::Serializer<serde_json::value::ser::MapKeySerializer> as erased_serde::ser::Serializer>::erased_serialize_i64 Unexecuted instantiation: <erased_serde::ser::erase::Serializer<&mut dyn erased_serde::ser::Serializer> as erased_serde::ser::Serializer>::erased_serialize_i64 Unexecuted instantiation: <erased_serde::ser::erase::Serializer<&mut serde_json::ser::Serializer<&mut alloc::vec::Vec<u8>>> as erased_serde::ser::Serializer>::erased_serialize_i64 Unexecuted instantiation: <erased_serde::ser::erase::Serializer<_> as erased_serde::ser::Serializer>::erased_serialize_i64 |
308 | | |
309 | 0 | fn erased_serialize_i128(&mut self, v: i128) -> Result<Ok, Error> { |
310 | 0 | unsafe { |
311 | 0 | self.take() |
312 | 0 | .serialize_i128(v) |
313 | 0 | .unsafe_map(Ok::new) |
314 | 0 | .map_err(erase) |
315 | 0 | } |
316 | 0 | } Unexecuted instantiation: <erased_serde::ser::erase::Serializer<serde_json::ser::MapKeySerializer<&mut alloc::vec::Vec<u8>, serde_json::ser::CompactFormatter>> as erased_serde::ser::Serializer>::erased_serialize_i128 Unexecuted instantiation: <erased_serde::ser::erase::Serializer<serde_json::value::ser::Serializer> as erased_serde::ser::Serializer>::erased_serialize_i128 Unexecuted instantiation: <erased_serde::ser::erase::Serializer<serde_json::value::ser::MapKeySerializer> as erased_serde::ser::Serializer>::erased_serialize_i128 Unexecuted instantiation: <erased_serde::ser::erase::Serializer<&mut dyn erased_serde::ser::Serializer> as erased_serde::ser::Serializer>::erased_serialize_i128 Unexecuted instantiation: <erased_serde::ser::erase::Serializer<&mut serde_json::ser::Serializer<&mut alloc::vec::Vec<u8>>> as erased_serde::ser::Serializer>::erased_serialize_i128 Unexecuted instantiation: <erased_serde::ser::erase::Serializer<_> as erased_serde::ser::Serializer>::erased_serialize_i128 |
317 | | |
318 | 0 | fn erased_serialize_u8(&mut self, v: u8) -> Result<Ok, Error> { |
319 | 0 | unsafe { |
320 | 0 | self.take() |
321 | 0 | .serialize_u8(v) |
322 | 0 | .unsafe_map(Ok::new) |
323 | 0 | .map_err(erase) |
324 | 0 | } |
325 | 0 | } Unexecuted instantiation: <erased_serde::ser::erase::Serializer<serde_json::ser::MapKeySerializer<&mut alloc::vec::Vec<u8>, serde_json::ser::CompactFormatter>> as erased_serde::ser::Serializer>::erased_serialize_u8 Unexecuted instantiation: <erased_serde::ser::erase::Serializer<serde_json::value::ser::Serializer> as erased_serde::ser::Serializer>::erased_serialize_u8 Unexecuted instantiation: <erased_serde::ser::erase::Serializer<serde_json::value::ser::MapKeySerializer> as erased_serde::ser::Serializer>::erased_serialize_u8 Unexecuted instantiation: <erased_serde::ser::erase::Serializer<&mut dyn erased_serde::ser::Serializer> as erased_serde::ser::Serializer>::erased_serialize_u8 Unexecuted instantiation: <erased_serde::ser::erase::Serializer<&mut serde_json::ser::Serializer<&mut alloc::vec::Vec<u8>>> as erased_serde::ser::Serializer>::erased_serialize_u8 Unexecuted instantiation: <erased_serde::ser::erase::Serializer<_> as erased_serde::ser::Serializer>::erased_serialize_u8 |
326 | | |
327 | 0 | fn erased_serialize_u16(&mut self, v: u16) -> Result<Ok, Error> { |
328 | 0 | unsafe { |
329 | 0 | self.take() |
330 | 0 | .serialize_u16(v) |
331 | 0 | .unsafe_map(Ok::new) |
332 | 0 | .map_err(erase) |
333 | 0 | } |
334 | 0 | } Unexecuted instantiation: <erased_serde::ser::erase::Serializer<serde_json::ser::MapKeySerializer<&mut alloc::vec::Vec<u8>, serde_json::ser::CompactFormatter>> as erased_serde::ser::Serializer>::erased_serialize_u16 Unexecuted instantiation: <erased_serde::ser::erase::Serializer<serde_json::value::ser::Serializer> as erased_serde::ser::Serializer>::erased_serialize_u16 Unexecuted instantiation: <erased_serde::ser::erase::Serializer<serde_json::value::ser::MapKeySerializer> as erased_serde::ser::Serializer>::erased_serialize_u16 Unexecuted instantiation: <erased_serde::ser::erase::Serializer<&mut dyn erased_serde::ser::Serializer> as erased_serde::ser::Serializer>::erased_serialize_u16 Unexecuted instantiation: <erased_serde::ser::erase::Serializer<&mut serde_json::ser::Serializer<&mut alloc::vec::Vec<u8>>> as erased_serde::ser::Serializer>::erased_serialize_u16 Unexecuted instantiation: <erased_serde::ser::erase::Serializer<_> as erased_serde::ser::Serializer>::erased_serialize_u16 |
335 | | |
336 | 0 | fn erased_serialize_u32(&mut self, v: u32) -> Result<Ok, Error> { |
337 | 0 | unsafe { |
338 | 0 | self.take() |
339 | 0 | .serialize_u32(v) |
340 | 0 | .unsafe_map(Ok::new) |
341 | 0 | .map_err(erase) |
342 | 0 | } |
343 | 0 | } Unexecuted instantiation: <erased_serde::ser::erase::Serializer<serde_json::ser::MapKeySerializer<&mut alloc::vec::Vec<u8>, serde_json::ser::CompactFormatter>> as erased_serde::ser::Serializer>::erased_serialize_u32 Unexecuted instantiation: <erased_serde::ser::erase::Serializer<serde_json::value::ser::Serializer> as erased_serde::ser::Serializer>::erased_serialize_u32 Unexecuted instantiation: <erased_serde::ser::erase::Serializer<serde_json::value::ser::MapKeySerializer> as erased_serde::ser::Serializer>::erased_serialize_u32 Unexecuted instantiation: <erased_serde::ser::erase::Serializer<&mut dyn erased_serde::ser::Serializer> as erased_serde::ser::Serializer>::erased_serialize_u32 Unexecuted instantiation: <erased_serde::ser::erase::Serializer<&mut serde_json::ser::Serializer<&mut alloc::vec::Vec<u8>>> as erased_serde::ser::Serializer>::erased_serialize_u32 Unexecuted instantiation: <erased_serde::ser::erase::Serializer<_> as erased_serde::ser::Serializer>::erased_serialize_u32 |
344 | | |
345 | 0 | fn erased_serialize_u64(&mut self, v: u64) -> Result<Ok, Error> { |
346 | 0 | unsafe { |
347 | 0 | self.take() |
348 | 0 | .serialize_u64(v) |
349 | 0 | .unsafe_map(Ok::new) |
350 | 0 | .map_err(erase) |
351 | 0 | } |
352 | 0 | } Unexecuted instantiation: <erased_serde::ser::erase::Serializer<serde_json::ser::MapKeySerializer<&mut alloc::vec::Vec<u8>, serde_json::ser::CompactFormatter>> as erased_serde::ser::Serializer>::erased_serialize_u64 Unexecuted instantiation: <erased_serde::ser::erase::Serializer<serde_json::value::ser::Serializer> as erased_serde::ser::Serializer>::erased_serialize_u64 Unexecuted instantiation: <erased_serde::ser::erase::Serializer<serde_json::value::ser::MapKeySerializer> as erased_serde::ser::Serializer>::erased_serialize_u64 Unexecuted instantiation: <erased_serde::ser::erase::Serializer<&mut dyn erased_serde::ser::Serializer> as erased_serde::ser::Serializer>::erased_serialize_u64 Unexecuted instantiation: <erased_serde::ser::erase::Serializer<&mut serde_json::ser::Serializer<&mut alloc::vec::Vec<u8>>> as erased_serde::ser::Serializer>::erased_serialize_u64 Unexecuted instantiation: <erased_serde::ser::erase::Serializer<_> as erased_serde::ser::Serializer>::erased_serialize_u64 |
353 | | |
354 | 0 | fn erased_serialize_u128(&mut self, v: u128) -> Result<Ok, Error> { |
355 | 0 | unsafe { |
356 | 0 | self.take() |
357 | 0 | .serialize_u128(v) |
358 | 0 | .unsafe_map(Ok::new) |
359 | 0 | .map_err(erase) |
360 | 0 | } |
361 | 0 | } Unexecuted instantiation: <erased_serde::ser::erase::Serializer<serde_json::ser::MapKeySerializer<&mut alloc::vec::Vec<u8>, serde_json::ser::CompactFormatter>> as erased_serde::ser::Serializer>::erased_serialize_u128 Unexecuted instantiation: <erased_serde::ser::erase::Serializer<serde_json::value::ser::Serializer> as erased_serde::ser::Serializer>::erased_serialize_u128 Unexecuted instantiation: <erased_serde::ser::erase::Serializer<serde_json::value::ser::MapKeySerializer> as erased_serde::ser::Serializer>::erased_serialize_u128 Unexecuted instantiation: <erased_serde::ser::erase::Serializer<&mut dyn erased_serde::ser::Serializer> as erased_serde::ser::Serializer>::erased_serialize_u128 Unexecuted instantiation: <erased_serde::ser::erase::Serializer<&mut serde_json::ser::Serializer<&mut alloc::vec::Vec<u8>>> as erased_serde::ser::Serializer>::erased_serialize_u128 Unexecuted instantiation: <erased_serde::ser::erase::Serializer<_> as erased_serde::ser::Serializer>::erased_serialize_u128 |
362 | | |
363 | 0 | fn erased_serialize_f32(&mut self, v: f32) -> Result<Ok, Error> { |
364 | 0 | unsafe { |
365 | 0 | self.take() |
366 | 0 | .serialize_f32(v) |
367 | 0 | .unsafe_map(Ok::new) |
368 | 0 | .map_err(erase) |
369 | 0 | } |
370 | 0 | } Unexecuted instantiation: <erased_serde::ser::erase::Serializer<serde_json::ser::MapKeySerializer<&mut alloc::vec::Vec<u8>, serde_json::ser::CompactFormatter>> as erased_serde::ser::Serializer>::erased_serialize_f32 Unexecuted instantiation: <erased_serde::ser::erase::Serializer<serde_json::value::ser::Serializer> as erased_serde::ser::Serializer>::erased_serialize_f32 Unexecuted instantiation: <erased_serde::ser::erase::Serializer<serde_json::value::ser::MapKeySerializer> as erased_serde::ser::Serializer>::erased_serialize_f32 Unexecuted instantiation: <erased_serde::ser::erase::Serializer<&mut dyn erased_serde::ser::Serializer> as erased_serde::ser::Serializer>::erased_serialize_f32 Unexecuted instantiation: <erased_serde::ser::erase::Serializer<&mut serde_json::ser::Serializer<&mut alloc::vec::Vec<u8>>> as erased_serde::ser::Serializer>::erased_serialize_f32 Unexecuted instantiation: <erased_serde::ser::erase::Serializer<_> as erased_serde::ser::Serializer>::erased_serialize_f32 |
371 | | |
372 | 0 | fn erased_serialize_f64(&mut self, v: f64) -> Result<Ok, Error> { |
373 | 0 | unsafe { |
374 | 0 | self.take() |
375 | 0 | .serialize_f64(v) |
376 | 0 | .unsafe_map(Ok::new) |
377 | 0 | .map_err(erase) |
378 | 0 | } |
379 | 0 | } Unexecuted instantiation: <erased_serde::ser::erase::Serializer<serde_json::ser::MapKeySerializer<&mut alloc::vec::Vec<u8>, serde_json::ser::CompactFormatter>> as erased_serde::ser::Serializer>::erased_serialize_f64 Unexecuted instantiation: <erased_serde::ser::erase::Serializer<serde_json::value::ser::Serializer> as erased_serde::ser::Serializer>::erased_serialize_f64 Unexecuted instantiation: <erased_serde::ser::erase::Serializer<serde_json::value::ser::MapKeySerializer> as erased_serde::ser::Serializer>::erased_serialize_f64 Unexecuted instantiation: <erased_serde::ser::erase::Serializer<&mut dyn erased_serde::ser::Serializer> as erased_serde::ser::Serializer>::erased_serialize_f64 Unexecuted instantiation: <erased_serde::ser::erase::Serializer<&mut serde_json::ser::Serializer<&mut alloc::vec::Vec<u8>>> as erased_serde::ser::Serializer>::erased_serialize_f64 Unexecuted instantiation: <erased_serde::ser::erase::Serializer<_> as erased_serde::ser::Serializer>::erased_serialize_f64 |
380 | | |
381 | 0 | fn erased_serialize_char(&mut self, v: char) -> Result<Ok, Error> { |
382 | 0 | unsafe { |
383 | 0 | self.take() |
384 | 0 | .serialize_char(v) |
385 | 0 | .unsafe_map(Ok::new) |
386 | 0 | .map_err(erase) |
387 | 0 | } |
388 | 0 | } Unexecuted instantiation: <erased_serde::ser::erase::Serializer<serde_json::ser::MapKeySerializer<&mut alloc::vec::Vec<u8>, serde_json::ser::CompactFormatter>> as erased_serde::ser::Serializer>::erased_serialize_char Unexecuted instantiation: <erased_serde::ser::erase::Serializer<serde_json::value::ser::Serializer> as erased_serde::ser::Serializer>::erased_serialize_char Unexecuted instantiation: <erased_serde::ser::erase::Serializer<serde_json::value::ser::MapKeySerializer> as erased_serde::ser::Serializer>::erased_serialize_char Unexecuted instantiation: <erased_serde::ser::erase::Serializer<&mut dyn erased_serde::ser::Serializer> as erased_serde::ser::Serializer>::erased_serialize_char Unexecuted instantiation: <erased_serde::ser::erase::Serializer<&mut serde_json::ser::Serializer<&mut alloc::vec::Vec<u8>>> as erased_serde::ser::Serializer>::erased_serialize_char Unexecuted instantiation: <erased_serde::ser::erase::Serializer<_> as erased_serde::ser::Serializer>::erased_serialize_char |
389 | | |
390 | 0 | fn erased_serialize_str(&mut self, v: &str) -> Result<Ok, Error> { |
391 | 0 | unsafe { |
392 | 0 | self.take() |
393 | 0 | .serialize_str(v) |
394 | 0 | .unsafe_map(Ok::new) |
395 | 0 | .map_err(erase) |
396 | 0 | } |
397 | 0 | } Unexecuted instantiation: <erased_serde::ser::erase::Serializer<serde_json::ser::MapKeySerializer<&mut alloc::vec::Vec<u8>, serde_json::ser::CompactFormatter>> as erased_serde::ser::Serializer>::erased_serialize_str Unexecuted instantiation: <erased_serde::ser::erase::Serializer<serde_json::value::ser::Serializer> as erased_serde::ser::Serializer>::erased_serialize_str Unexecuted instantiation: <erased_serde::ser::erase::Serializer<serde_json::value::ser::MapKeySerializer> as erased_serde::ser::Serializer>::erased_serialize_str Unexecuted instantiation: <erased_serde::ser::erase::Serializer<&mut dyn erased_serde::ser::Serializer> as erased_serde::ser::Serializer>::erased_serialize_str Unexecuted instantiation: <erased_serde::ser::erase::Serializer<&mut serde_json::ser::Serializer<&mut alloc::vec::Vec<u8>>> as erased_serde::ser::Serializer>::erased_serialize_str Unexecuted instantiation: <erased_serde::ser::erase::Serializer<_> as erased_serde::ser::Serializer>::erased_serialize_str |
398 | | |
399 | 0 | fn erased_serialize_bytes(&mut self, v: &[u8]) -> Result<Ok, Error> { |
400 | 0 | unsafe { |
401 | 0 | self.take() |
402 | 0 | .serialize_bytes(v) |
403 | 0 | .unsafe_map(Ok::new) |
404 | 0 | .map_err(erase) |
405 | 0 | } |
406 | 0 | } Unexecuted instantiation: <erased_serde::ser::erase::Serializer<serde_json::ser::MapKeySerializer<&mut alloc::vec::Vec<u8>, serde_json::ser::CompactFormatter>> as erased_serde::ser::Serializer>::erased_serialize_bytes Unexecuted instantiation: <erased_serde::ser::erase::Serializer<serde_json::value::ser::Serializer> as erased_serde::ser::Serializer>::erased_serialize_bytes Unexecuted instantiation: <erased_serde::ser::erase::Serializer<serde_json::value::ser::MapKeySerializer> as erased_serde::ser::Serializer>::erased_serialize_bytes Unexecuted instantiation: <erased_serde::ser::erase::Serializer<&mut dyn erased_serde::ser::Serializer> as erased_serde::ser::Serializer>::erased_serialize_bytes Unexecuted instantiation: <erased_serde::ser::erase::Serializer<&mut serde_json::ser::Serializer<&mut alloc::vec::Vec<u8>>> as erased_serde::ser::Serializer>::erased_serialize_bytes Unexecuted instantiation: <erased_serde::ser::erase::Serializer<_> as erased_serde::ser::Serializer>::erased_serialize_bytes |
407 | | |
408 | 0 | fn erased_serialize_none(&mut self) -> Result<Ok, Error> { |
409 | 0 | unsafe { |
410 | 0 | self.take() |
411 | 0 | .serialize_none() |
412 | 0 | .unsafe_map(Ok::new) |
413 | 0 | .map_err(erase) |
414 | 0 | } |
415 | 0 | } Unexecuted instantiation: <erased_serde::ser::erase::Serializer<serde_json::ser::MapKeySerializer<&mut alloc::vec::Vec<u8>, serde_json::ser::CompactFormatter>> as erased_serde::ser::Serializer>::erased_serialize_none Unexecuted instantiation: <erased_serde::ser::erase::Serializer<serde_json::value::ser::Serializer> as erased_serde::ser::Serializer>::erased_serialize_none Unexecuted instantiation: <erased_serde::ser::erase::Serializer<serde_json::value::ser::MapKeySerializer> as erased_serde::ser::Serializer>::erased_serialize_none Unexecuted instantiation: <erased_serde::ser::erase::Serializer<&mut dyn erased_serde::ser::Serializer> as erased_serde::ser::Serializer>::erased_serialize_none Unexecuted instantiation: <erased_serde::ser::erase::Serializer<&mut serde_json::ser::Serializer<&mut alloc::vec::Vec<u8>>> as erased_serde::ser::Serializer>::erased_serialize_none Unexecuted instantiation: <erased_serde::ser::erase::Serializer<_> as erased_serde::ser::Serializer>::erased_serialize_none |
416 | | |
417 | 0 | fn erased_serialize_some(&mut self, v: &dyn Serialize) -> Result<Ok, Error> { |
418 | 0 | unsafe { |
419 | 0 | self.take() |
420 | 0 | .serialize_some(v) |
421 | 0 | .unsafe_map(Ok::new) |
422 | 0 | .map_err(erase) |
423 | 0 | } |
424 | 0 | } Unexecuted instantiation: <erased_serde::ser::erase::Serializer<serde_json::ser::MapKeySerializer<&mut alloc::vec::Vec<u8>, serde_json::ser::CompactFormatter>> as erased_serde::ser::Serializer>::erased_serialize_some Unexecuted instantiation: <erased_serde::ser::erase::Serializer<serde_json::value::ser::Serializer> as erased_serde::ser::Serializer>::erased_serialize_some Unexecuted instantiation: <erased_serde::ser::erase::Serializer<serde_json::value::ser::MapKeySerializer> as erased_serde::ser::Serializer>::erased_serialize_some Unexecuted instantiation: <erased_serde::ser::erase::Serializer<&mut dyn erased_serde::ser::Serializer> as erased_serde::ser::Serializer>::erased_serialize_some Unexecuted instantiation: <erased_serde::ser::erase::Serializer<&mut serde_json::ser::Serializer<&mut alloc::vec::Vec<u8>>> as erased_serde::ser::Serializer>::erased_serialize_some Unexecuted instantiation: <erased_serde::ser::erase::Serializer<_> as erased_serde::ser::Serializer>::erased_serialize_some |
425 | | |
426 | 0 | fn erased_serialize_unit(&mut self) -> Result<Ok, Error> { |
427 | 0 | unsafe { |
428 | 0 | self.take() |
429 | 0 | .serialize_unit() |
430 | 0 | .unsafe_map(Ok::new) |
431 | 0 | .map_err(erase) |
432 | 0 | } |
433 | 0 | } Unexecuted instantiation: <erased_serde::ser::erase::Serializer<serde_json::ser::MapKeySerializer<&mut alloc::vec::Vec<u8>, serde_json::ser::CompactFormatter>> as erased_serde::ser::Serializer>::erased_serialize_unit Unexecuted instantiation: <erased_serde::ser::erase::Serializer<serde_json::value::ser::Serializer> as erased_serde::ser::Serializer>::erased_serialize_unit Unexecuted instantiation: <erased_serde::ser::erase::Serializer<serde_json::value::ser::MapKeySerializer> as erased_serde::ser::Serializer>::erased_serialize_unit Unexecuted instantiation: <erased_serde::ser::erase::Serializer<&mut dyn erased_serde::ser::Serializer> as erased_serde::ser::Serializer>::erased_serialize_unit Unexecuted instantiation: <erased_serde::ser::erase::Serializer<&mut serde_json::ser::Serializer<&mut alloc::vec::Vec<u8>>> as erased_serde::ser::Serializer>::erased_serialize_unit Unexecuted instantiation: <erased_serde::ser::erase::Serializer<_> as erased_serde::ser::Serializer>::erased_serialize_unit |
434 | | |
435 | 0 | fn erased_serialize_unit_struct(&mut self, name: &'static str) -> Result<Ok, Error> { |
436 | 0 | unsafe { |
437 | 0 | self.take() |
438 | 0 | .serialize_unit_struct(name) |
439 | 0 | .unsafe_map(Ok::new) |
440 | 0 | .map_err(erase) |
441 | 0 | } |
442 | 0 | } Unexecuted instantiation: <erased_serde::ser::erase::Serializer<serde_json::ser::MapKeySerializer<&mut alloc::vec::Vec<u8>, serde_json::ser::CompactFormatter>> as erased_serde::ser::Serializer>::erased_serialize_unit_struct Unexecuted instantiation: <erased_serde::ser::erase::Serializer<serde_json::value::ser::Serializer> as erased_serde::ser::Serializer>::erased_serialize_unit_struct Unexecuted instantiation: <erased_serde::ser::erase::Serializer<serde_json::value::ser::MapKeySerializer> as erased_serde::ser::Serializer>::erased_serialize_unit_struct Unexecuted instantiation: <erased_serde::ser::erase::Serializer<&mut dyn erased_serde::ser::Serializer> as erased_serde::ser::Serializer>::erased_serialize_unit_struct Unexecuted instantiation: <erased_serde::ser::erase::Serializer<&mut serde_json::ser::Serializer<&mut alloc::vec::Vec<u8>>> as erased_serde::ser::Serializer>::erased_serialize_unit_struct Unexecuted instantiation: <erased_serde::ser::erase::Serializer<_> as erased_serde::ser::Serializer>::erased_serialize_unit_struct |
443 | | |
444 | 0 | fn erased_serialize_unit_variant( |
445 | 0 | &mut self, |
446 | 0 | name: &'static str, |
447 | 0 | variant_index: u32, |
448 | 0 | variant: &'static str, |
449 | 0 | ) -> Result<Ok, Error> { |
450 | 0 | unsafe { |
451 | 0 | self.take() |
452 | 0 | .serialize_unit_variant(name, variant_index, variant) |
453 | 0 | .unsafe_map(Ok::new) |
454 | 0 | .map_err(erase) |
455 | 0 | } |
456 | 0 | } Unexecuted instantiation: <erased_serde::ser::erase::Serializer<serde_json::ser::MapKeySerializer<&mut alloc::vec::Vec<u8>, serde_json::ser::CompactFormatter>> as erased_serde::ser::Serializer>::erased_serialize_unit_variant Unexecuted instantiation: <erased_serde::ser::erase::Serializer<serde_json::value::ser::Serializer> as erased_serde::ser::Serializer>::erased_serialize_unit_variant Unexecuted instantiation: <erased_serde::ser::erase::Serializer<serde_json::value::ser::MapKeySerializer> as erased_serde::ser::Serializer>::erased_serialize_unit_variant Unexecuted instantiation: <erased_serde::ser::erase::Serializer<&mut dyn erased_serde::ser::Serializer> as erased_serde::ser::Serializer>::erased_serialize_unit_variant Unexecuted instantiation: <erased_serde::ser::erase::Serializer<&mut serde_json::ser::Serializer<&mut alloc::vec::Vec<u8>>> as erased_serde::ser::Serializer>::erased_serialize_unit_variant Unexecuted instantiation: <erased_serde::ser::erase::Serializer<_> as erased_serde::ser::Serializer>::erased_serialize_unit_variant |
457 | | |
458 | 0 | fn erased_serialize_newtype_struct( |
459 | 0 | &mut self, |
460 | 0 | name: &'static str, |
461 | 0 | v: &dyn Serialize, |
462 | 0 | ) -> Result<Ok, Error> { |
463 | 0 | unsafe { |
464 | 0 | self.take() |
465 | 0 | .serialize_newtype_struct(name, v) |
466 | 0 | .unsafe_map(Ok::new) |
467 | 0 | .map_err(erase) |
468 | 0 | } |
469 | 0 | } Unexecuted instantiation: <erased_serde::ser::erase::Serializer<serde_json::ser::MapKeySerializer<&mut alloc::vec::Vec<u8>, serde_json::ser::CompactFormatter>> as erased_serde::ser::Serializer>::erased_serialize_newtype_struct Unexecuted instantiation: <erased_serde::ser::erase::Serializer<serde_json::value::ser::Serializer> as erased_serde::ser::Serializer>::erased_serialize_newtype_struct Unexecuted instantiation: <erased_serde::ser::erase::Serializer<serde_json::value::ser::MapKeySerializer> as erased_serde::ser::Serializer>::erased_serialize_newtype_struct Unexecuted instantiation: <erased_serde::ser::erase::Serializer<&mut dyn erased_serde::ser::Serializer> as erased_serde::ser::Serializer>::erased_serialize_newtype_struct Unexecuted instantiation: <erased_serde::ser::erase::Serializer<&mut serde_json::ser::Serializer<&mut alloc::vec::Vec<u8>>> as erased_serde::ser::Serializer>::erased_serialize_newtype_struct Unexecuted instantiation: <erased_serde::ser::erase::Serializer<_> as erased_serde::ser::Serializer>::erased_serialize_newtype_struct |
470 | | |
471 | 0 | fn erased_serialize_newtype_variant( |
472 | 0 | &mut self, |
473 | 0 | name: &'static str, |
474 | 0 | variant_index: u32, |
475 | 0 | variant: &'static str, |
476 | 0 | v: &dyn Serialize, |
477 | 0 | ) -> Result<Ok, Error> { |
478 | 0 | unsafe { |
479 | 0 | self.take() |
480 | 0 | .serialize_newtype_variant(name, variant_index, variant, v) |
481 | 0 | .unsafe_map(Ok::new) |
482 | 0 | .map_err(erase) |
483 | 0 | } |
484 | 0 | } Unexecuted instantiation: <erased_serde::ser::erase::Serializer<serde_json::ser::MapKeySerializer<&mut alloc::vec::Vec<u8>, serde_json::ser::CompactFormatter>> as erased_serde::ser::Serializer>::erased_serialize_newtype_variant Unexecuted instantiation: <erased_serde::ser::erase::Serializer<serde_json::value::ser::Serializer> as erased_serde::ser::Serializer>::erased_serialize_newtype_variant Unexecuted instantiation: <erased_serde::ser::erase::Serializer<serde_json::value::ser::MapKeySerializer> as erased_serde::ser::Serializer>::erased_serialize_newtype_variant Unexecuted instantiation: <erased_serde::ser::erase::Serializer<&mut dyn erased_serde::ser::Serializer> as erased_serde::ser::Serializer>::erased_serialize_newtype_variant Unexecuted instantiation: <erased_serde::ser::erase::Serializer<&mut serde_json::ser::Serializer<&mut alloc::vec::Vec<u8>>> as erased_serde::ser::Serializer>::erased_serialize_newtype_variant Unexecuted instantiation: <erased_serde::ser::erase::Serializer<_> as erased_serde::ser::Serializer>::erased_serialize_newtype_variant |
485 | | |
486 | 0 | fn erased_serialize_seq(&mut self, len: Option<usize>) -> Result<Seq, Error> { |
487 | 0 | unsafe { |
488 | 0 | self.take() |
489 | 0 | .serialize_seq(len) |
490 | 0 | .unsafe_map(Seq::new) |
491 | 0 | .map_err(erase) |
492 | 0 | } |
493 | 0 | } Unexecuted instantiation: <erased_serde::ser::erase::Serializer<serde_json::ser::MapKeySerializer<&mut alloc::vec::Vec<u8>, serde_json::ser::CompactFormatter>> as erased_serde::ser::Serializer>::erased_serialize_seq Unexecuted instantiation: <erased_serde::ser::erase::Serializer<serde_json::value::ser::Serializer> as erased_serde::ser::Serializer>::erased_serialize_seq Unexecuted instantiation: <erased_serde::ser::erase::Serializer<serde_json::value::ser::MapKeySerializer> as erased_serde::ser::Serializer>::erased_serialize_seq Unexecuted instantiation: <erased_serde::ser::erase::Serializer<&mut dyn erased_serde::ser::Serializer> as erased_serde::ser::Serializer>::erased_serialize_seq Unexecuted instantiation: <erased_serde::ser::erase::Serializer<&mut serde_json::ser::Serializer<&mut alloc::vec::Vec<u8>>> as erased_serde::ser::Serializer>::erased_serialize_seq Unexecuted instantiation: <erased_serde::ser::erase::Serializer<_> as erased_serde::ser::Serializer>::erased_serialize_seq |
494 | | |
495 | 0 | fn erased_serialize_tuple(&mut self, len: usize) -> Result<Tuple, Error> { |
496 | 0 | unsafe { |
497 | 0 | self.take() |
498 | 0 | .serialize_tuple(len) |
499 | 0 | .unsafe_map(Tuple::new) |
500 | 0 | .map_err(erase) |
501 | 0 | } |
502 | 0 | } Unexecuted instantiation: <erased_serde::ser::erase::Serializer<serde_json::ser::MapKeySerializer<&mut alloc::vec::Vec<u8>, serde_json::ser::CompactFormatter>> as erased_serde::ser::Serializer>::erased_serialize_tuple Unexecuted instantiation: <erased_serde::ser::erase::Serializer<serde_json::value::ser::Serializer> as erased_serde::ser::Serializer>::erased_serialize_tuple Unexecuted instantiation: <erased_serde::ser::erase::Serializer<serde_json::value::ser::MapKeySerializer> as erased_serde::ser::Serializer>::erased_serialize_tuple Unexecuted instantiation: <erased_serde::ser::erase::Serializer<&mut dyn erased_serde::ser::Serializer> as erased_serde::ser::Serializer>::erased_serialize_tuple Unexecuted instantiation: <erased_serde::ser::erase::Serializer<&mut serde_json::ser::Serializer<&mut alloc::vec::Vec<u8>>> as erased_serde::ser::Serializer>::erased_serialize_tuple Unexecuted instantiation: <erased_serde::ser::erase::Serializer<_> as erased_serde::ser::Serializer>::erased_serialize_tuple |
503 | | |
504 | 0 | fn erased_serialize_tuple_struct( |
505 | 0 | &mut self, |
506 | 0 | name: &'static str, |
507 | 0 | len: usize, |
508 | 0 | ) -> Result<TupleStruct, Error> { |
509 | 0 | unsafe { |
510 | 0 | self.take() |
511 | 0 | .serialize_tuple_struct(name, len) |
512 | 0 | .unsafe_map(TupleStruct::new) |
513 | 0 | .map_err(erase) |
514 | 0 | } |
515 | 0 | } Unexecuted instantiation: <erased_serde::ser::erase::Serializer<serde_json::ser::MapKeySerializer<&mut alloc::vec::Vec<u8>, serde_json::ser::CompactFormatter>> as erased_serde::ser::Serializer>::erased_serialize_tuple_struct Unexecuted instantiation: <erased_serde::ser::erase::Serializer<serde_json::value::ser::Serializer> as erased_serde::ser::Serializer>::erased_serialize_tuple_struct Unexecuted instantiation: <erased_serde::ser::erase::Serializer<serde_json::value::ser::MapKeySerializer> as erased_serde::ser::Serializer>::erased_serialize_tuple_struct Unexecuted instantiation: <erased_serde::ser::erase::Serializer<&mut dyn erased_serde::ser::Serializer> as erased_serde::ser::Serializer>::erased_serialize_tuple_struct Unexecuted instantiation: <erased_serde::ser::erase::Serializer<&mut serde_json::ser::Serializer<&mut alloc::vec::Vec<u8>>> as erased_serde::ser::Serializer>::erased_serialize_tuple_struct Unexecuted instantiation: <erased_serde::ser::erase::Serializer<_> as erased_serde::ser::Serializer>::erased_serialize_tuple_struct |
516 | | |
517 | 0 | fn erased_serialize_tuple_variant( |
518 | 0 | &mut self, |
519 | 0 | name: &'static str, |
520 | 0 | variant_index: u32, |
521 | 0 | variant: &'static str, |
522 | 0 | len: usize, |
523 | 0 | ) -> Result<TupleVariant, Error> { |
524 | 0 | unsafe { |
525 | 0 | self.take() |
526 | 0 | .serialize_tuple_variant(name, variant_index, variant, len) |
527 | 0 | .unsafe_map(TupleVariant::new) |
528 | 0 | .map_err(erase) |
529 | 0 | } |
530 | 0 | } Unexecuted instantiation: <erased_serde::ser::erase::Serializer<serde_json::ser::MapKeySerializer<&mut alloc::vec::Vec<u8>, serde_json::ser::CompactFormatter>> as erased_serde::ser::Serializer>::erased_serialize_tuple_variant Unexecuted instantiation: <erased_serde::ser::erase::Serializer<serde_json::value::ser::Serializer> as erased_serde::ser::Serializer>::erased_serialize_tuple_variant Unexecuted instantiation: <erased_serde::ser::erase::Serializer<serde_json::value::ser::MapKeySerializer> as erased_serde::ser::Serializer>::erased_serialize_tuple_variant Unexecuted instantiation: <erased_serde::ser::erase::Serializer<&mut dyn erased_serde::ser::Serializer> as erased_serde::ser::Serializer>::erased_serialize_tuple_variant Unexecuted instantiation: <erased_serde::ser::erase::Serializer<&mut serde_json::ser::Serializer<&mut alloc::vec::Vec<u8>>> as erased_serde::ser::Serializer>::erased_serialize_tuple_variant Unexecuted instantiation: <erased_serde::ser::erase::Serializer<_> as erased_serde::ser::Serializer>::erased_serialize_tuple_variant |
531 | | |
532 | 0 | fn erased_serialize_map(&mut self, len: Option<usize>) -> Result<Map, Error> { |
533 | 0 | unsafe { |
534 | 0 | self.take() |
535 | 0 | .serialize_map(len) |
536 | 0 | .unsafe_map(Map::new) |
537 | 0 | .map_err(erase) |
538 | 0 | } |
539 | 0 | } Unexecuted instantiation: <erased_serde::ser::erase::Serializer<serde_json::ser::MapKeySerializer<&mut alloc::vec::Vec<u8>, serde_json::ser::CompactFormatter>> as erased_serde::ser::Serializer>::erased_serialize_map Unexecuted instantiation: <erased_serde::ser::erase::Serializer<serde_json::value::ser::Serializer> as erased_serde::ser::Serializer>::erased_serialize_map Unexecuted instantiation: <erased_serde::ser::erase::Serializer<serde_json::value::ser::MapKeySerializer> as erased_serde::ser::Serializer>::erased_serialize_map Unexecuted instantiation: <erased_serde::ser::erase::Serializer<&mut dyn erased_serde::ser::Serializer> as erased_serde::ser::Serializer>::erased_serialize_map Unexecuted instantiation: <erased_serde::ser::erase::Serializer<&mut serde_json::ser::Serializer<&mut alloc::vec::Vec<u8>>> as erased_serde::ser::Serializer>::erased_serialize_map Unexecuted instantiation: <erased_serde::ser::erase::Serializer<_> as erased_serde::ser::Serializer>::erased_serialize_map |
540 | | |
541 | 0 | fn erased_serialize_struct(&mut self, name: &'static str, len: usize) -> Result<Struct, Error> { |
542 | 0 | unsafe { |
543 | 0 | self.take() |
544 | 0 | .serialize_struct(name, len) |
545 | 0 | .unsafe_map(Struct::new) |
546 | 0 | .map_err(erase) |
547 | 0 | } |
548 | 0 | } Unexecuted instantiation: <erased_serde::ser::erase::Serializer<serde_json::ser::MapKeySerializer<&mut alloc::vec::Vec<u8>, serde_json::ser::CompactFormatter>> as erased_serde::ser::Serializer>::erased_serialize_struct Unexecuted instantiation: <erased_serde::ser::erase::Serializer<serde_json::value::ser::Serializer> as erased_serde::ser::Serializer>::erased_serialize_struct Unexecuted instantiation: <erased_serde::ser::erase::Serializer<serde_json::value::ser::MapKeySerializer> as erased_serde::ser::Serializer>::erased_serialize_struct Unexecuted instantiation: <erased_serde::ser::erase::Serializer<&mut dyn erased_serde::ser::Serializer> as erased_serde::ser::Serializer>::erased_serialize_struct Unexecuted instantiation: <erased_serde::ser::erase::Serializer<&mut serde_json::ser::Serializer<&mut alloc::vec::Vec<u8>>> as erased_serde::ser::Serializer>::erased_serialize_struct Unexecuted instantiation: <erased_serde::ser::erase::Serializer<_> as erased_serde::ser::Serializer>::erased_serialize_struct |
549 | | |
550 | 0 | fn erased_serialize_struct_variant( |
551 | 0 | &mut self, |
552 | 0 | name: &'static str, |
553 | 0 | variant_index: u32, |
554 | 0 | variant: &'static str, |
555 | 0 | len: usize, |
556 | 0 | ) -> Result<StructVariant, Error> { |
557 | 0 | unsafe { |
558 | 0 | self.take() |
559 | 0 | .serialize_struct_variant(name, variant_index, variant, len) |
560 | 0 | .unsafe_map(StructVariant::new) |
561 | 0 | .map_err(erase) |
562 | 0 | } |
563 | 0 | } Unexecuted instantiation: <erased_serde::ser::erase::Serializer<serde_json::ser::MapKeySerializer<&mut alloc::vec::Vec<u8>, serde_json::ser::CompactFormatter>> as erased_serde::ser::Serializer>::erased_serialize_struct_variant Unexecuted instantiation: <erased_serde::ser::erase::Serializer<serde_json::value::ser::Serializer> as erased_serde::ser::Serializer>::erased_serialize_struct_variant Unexecuted instantiation: <erased_serde::ser::erase::Serializer<serde_json::value::ser::MapKeySerializer> as erased_serde::ser::Serializer>::erased_serialize_struct_variant Unexecuted instantiation: <erased_serde::ser::erase::Serializer<&mut dyn erased_serde::ser::Serializer> as erased_serde::ser::Serializer>::erased_serialize_struct_variant Unexecuted instantiation: <erased_serde::ser::erase::Serializer<&mut serde_json::ser::Serializer<&mut alloc::vec::Vec<u8>>> as erased_serde::ser::Serializer>::erased_serialize_struct_variant Unexecuted instantiation: <erased_serde::ser::erase::Serializer<_> as erased_serde::ser::Serializer>::erased_serialize_struct_variant |
564 | | |
565 | 0 | fn erased_is_human_readable(&self) -> bool { |
566 | 0 | self.as_ref().is_human_readable() |
567 | 0 | } Unexecuted instantiation: <erased_serde::ser::erase::Serializer<serde_json::ser::MapKeySerializer<&mut alloc::vec::Vec<u8>, serde_json::ser::CompactFormatter>> as erased_serde::ser::Serializer>::erased_is_human_readable Unexecuted instantiation: <erased_serde::ser::erase::Serializer<serde_json::value::ser::Serializer> as erased_serde::ser::Serializer>::erased_is_human_readable Unexecuted instantiation: <erased_serde::ser::erase::Serializer<serde_json::value::ser::MapKeySerializer> as erased_serde::ser::Serializer>::erased_is_human_readable Unexecuted instantiation: <erased_serde::ser::erase::Serializer<&mut dyn erased_serde::ser::Serializer> as erased_serde::ser::Serializer>::erased_is_human_readable Unexecuted instantiation: <erased_serde::ser::erase::Serializer<&mut serde_json::ser::Serializer<&mut alloc::vec::Vec<u8>>> as erased_serde::ser::Serializer>::erased_is_human_readable Unexecuted instantiation: <erased_serde::ser::erase::Serializer<_> as erased_serde::ser::Serializer>::erased_is_human_readable |
568 | | } |
569 | | |
570 | | // IMPL SERDE FOR ERASED SERDE ///////////////////////////////////////////////// |
571 | | |
572 | | /// Serialize the given type-erased serializable value. |
573 | | /// |
574 | | /// This can be used to implement `serde::Serialize` for trait objects that have |
575 | | /// `erased_serde::Serialize` as a supertrait. |
576 | | /// |
577 | | /// ``` |
578 | | /// trait Event: erased_serde::Serialize { |
579 | | /// /* ... */ |
580 | | /// } |
581 | | /// |
582 | | /// impl<'a> serde::Serialize for dyn Event + 'a { |
583 | | /// fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error> |
584 | | /// where S: serde::Serializer |
585 | | /// { |
586 | | /// erased_serde::serialize(self, serializer) |
587 | | /// } |
588 | | /// } |
589 | | /// ``` |
590 | | /// |
591 | | /// Since this is reasonably common, the `serialize_trait_object!` macro |
592 | | /// generates such a Serialize impl. |
593 | | /// |
594 | | /// ``` |
595 | | /// use erased_serde::serialize_trait_object; |
596 | | /// # |
597 | | /// # trait Event: erased_serde::Serialize {} |
598 | | /// |
599 | | /// serialize_trait_object!(Event); |
600 | | /// ``` |
601 | 0 | pub fn serialize<T, S>(value: &T, serializer: S) -> Result<S::Ok, S::Error> |
602 | 0 | where |
603 | 0 | T: ?Sized + Serialize, |
604 | 0 | S: serde::Serializer, |
605 | 0 | { |
606 | 0 | let mut erased = erase::Serializer { |
607 | 0 | state: Some(serializer), |
608 | 0 | }; |
609 | 0 | unsafe { |
610 | 0 | value |
611 | 0 | .erased_serialize(&mut erased) |
612 | 0 | .unsafe_map(Ok::take) |
613 | 0 | .map_err(unerase) |
614 | 0 | } |
615 | 0 | } Unexecuted instantiation: erased_serde::ser::serialize::<dyn erased_serde::ser::Serialize, serde_json::ser::MapKeySerializer<&mut alloc::vec::Vec<u8>, serde_json::ser::CompactFormatter>> Unexecuted instantiation: erased_serde::ser::serialize::<dyn erased_serde::ser::Serialize, serde_json::value::ser::Serializer> Unexecuted instantiation: erased_serde::ser::serialize::<dyn erased_serde::ser::Serialize, serde_json::value::ser::MapKeySerializer> Unexecuted instantiation: erased_serde::ser::serialize::<dyn erased_serde::ser::Serialize, &mut dyn erased_serde::ser::Serializer> Unexecuted instantiation: erased_serde::ser::serialize::<dyn erased_serde::ser::Serialize, &mut serde_json::ser::Serializer<&mut alloc::vec::Vec<u8>>> Unexecuted instantiation: erased_serde::ser::serialize::<_, _> |
616 | | |
617 | | serialize_trait_object!(Serialize); |
618 | | |
619 | | macro_rules! impl_serializer_for_trait_object { |
620 | | ($ty:ty) => { |
621 | | impl<'a> serde::Serializer for $ty { |
622 | | type Ok = Ok; |
623 | | type Error = Error; |
624 | | type SerializeSeq = Seq<'a>; |
625 | | type SerializeTuple = Tuple<'a>; |
626 | | type SerializeTupleStruct = TupleStruct<'a>; |
627 | | type SerializeTupleVariant = TupleVariant<'a>; |
628 | | type SerializeMap = Map<'a>; |
629 | | type SerializeStruct = Struct<'a>; |
630 | | type SerializeStructVariant = StructVariant<'a>; |
631 | | |
632 | 0 | fn serialize_bool(self, v: bool) -> Result<Ok, Error> { |
633 | 0 | self.erased_serialize_bool(v) |
634 | 0 | } Unexecuted instantiation: <&mut dyn erased_serde::ser::Serializer as serde::ser::Serializer>::serialize_bool Unexecuted instantiation: <&mut dyn erased_serde::ser::Serializer + core::marker::Send as serde::ser::Serializer>::serialize_bool Unexecuted instantiation: <&mut dyn erased_serde::ser::Serializer + core::marker::Sync as serde::ser::Serializer>::serialize_bool Unexecuted instantiation: <&mut dyn erased_serde::ser::Serializer + core::marker::Send + core::marker::Sync as serde::ser::Serializer>::serialize_bool |
635 | | |
636 | 0 | fn serialize_i8(self, v: i8) -> Result<Ok, Error> { |
637 | 0 | self.erased_serialize_i8(v) |
638 | 0 | } Unexecuted instantiation: <&mut dyn erased_serde::ser::Serializer as serde::ser::Serializer>::serialize_i8 Unexecuted instantiation: <&mut dyn erased_serde::ser::Serializer + core::marker::Send as serde::ser::Serializer>::serialize_i8 Unexecuted instantiation: <&mut dyn erased_serde::ser::Serializer + core::marker::Sync as serde::ser::Serializer>::serialize_i8 Unexecuted instantiation: <&mut dyn erased_serde::ser::Serializer + core::marker::Send + core::marker::Sync as serde::ser::Serializer>::serialize_i8 |
639 | | |
640 | 0 | fn serialize_i16(self, v: i16) -> Result<Ok, Error> { |
641 | 0 | self.erased_serialize_i16(v) |
642 | 0 | } Unexecuted instantiation: <&mut dyn erased_serde::ser::Serializer as serde::ser::Serializer>::serialize_i16 Unexecuted instantiation: <&mut dyn erased_serde::ser::Serializer + core::marker::Send as serde::ser::Serializer>::serialize_i16 Unexecuted instantiation: <&mut dyn erased_serde::ser::Serializer + core::marker::Sync as serde::ser::Serializer>::serialize_i16 Unexecuted instantiation: <&mut dyn erased_serde::ser::Serializer + core::marker::Send + core::marker::Sync as serde::ser::Serializer>::serialize_i16 |
643 | | |
644 | 0 | fn serialize_i32(self, v: i32) -> Result<Ok, Error> { |
645 | 0 | self.erased_serialize_i32(v) |
646 | 0 | } Unexecuted instantiation: <&mut dyn erased_serde::ser::Serializer as serde::ser::Serializer>::serialize_i32 Unexecuted instantiation: <&mut dyn erased_serde::ser::Serializer + core::marker::Send as serde::ser::Serializer>::serialize_i32 Unexecuted instantiation: <&mut dyn erased_serde::ser::Serializer + core::marker::Sync as serde::ser::Serializer>::serialize_i32 Unexecuted instantiation: <&mut dyn erased_serde::ser::Serializer + core::marker::Send + core::marker::Sync as serde::ser::Serializer>::serialize_i32 |
647 | | |
648 | 0 | fn serialize_i64(self, v: i64) -> Result<Ok, Error> { |
649 | 0 | self.erased_serialize_i64(v) |
650 | 0 | } Unexecuted instantiation: <&mut dyn erased_serde::ser::Serializer as serde::ser::Serializer>::serialize_i64 Unexecuted instantiation: <&mut dyn erased_serde::ser::Serializer + core::marker::Send as serde::ser::Serializer>::serialize_i64 Unexecuted instantiation: <&mut dyn erased_serde::ser::Serializer + core::marker::Sync as serde::ser::Serializer>::serialize_i64 Unexecuted instantiation: <&mut dyn erased_serde::ser::Serializer + core::marker::Send + core::marker::Sync as serde::ser::Serializer>::serialize_i64 |
651 | | |
652 | 0 | fn serialize_i128(self, v: i128) -> Result<Ok, Error> { |
653 | 0 | self.erased_serialize_i128(v) |
654 | 0 | } Unexecuted instantiation: <&mut dyn erased_serde::ser::Serializer as serde::ser::Serializer>::serialize_i128 Unexecuted instantiation: <&mut dyn erased_serde::ser::Serializer + core::marker::Send as serde::ser::Serializer>::serialize_i128 Unexecuted instantiation: <&mut dyn erased_serde::ser::Serializer + core::marker::Sync as serde::ser::Serializer>::serialize_i128 Unexecuted instantiation: <&mut dyn erased_serde::ser::Serializer + core::marker::Send + core::marker::Sync as serde::ser::Serializer>::serialize_i128 |
655 | | |
656 | 0 | fn serialize_u8(self, v: u8) -> Result<Ok, Error> { |
657 | 0 | self.erased_serialize_u8(v) |
658 | 0 | } Unexecuted instantiation: <&mut dyn erased_serde::ser::Serializer as serde::ser::Serializer>::serialize_u8 Unexecuted instantiation: <&mut dyn erased_serde::ser::Serializer + core::marker::Send as serde::ser::Serializer>::serialize_u8 Unexecuted instantiation: <&mut dyn erased_serde::ser::Serializer + core::marker::Sync as serde::ser::Serializer>::serialize_u8 Unexecuted instantiation: <&mut dyn erased_serde::ser::Serializer + core::marker::Send + core::marker::Sync as serde::ser::Serializer>::serialize_u8 |
659 | | |
660 | 0 | fn serialize_u16(self, v: u16) -> Result<Ok, Error> { |
661 | 0 | self.erased_serialize_u16(v) |
662 | 0 | } Unexecuted instantiation: <&mut dyn erased_serde::ser::Serializer as serde::ser::Serializer>::serialize_u16 Unexecuted instantiation: <&mut dyn erased_serde::ser::Serializer + core::marker::Send as serde::ser::Serializer>::serialize_u16 Unexecuted instantiation: <&mut dyn erased_serde::ser::Serializer + core::marker::Sync as serde::ser::Serializer>::serialize_u16 Unexecuted instantiation: <&mut dyn erased_serde::ser::Serializer + core::marker::Send + core::marker::Sync as serde::ser::Serializer>::serialize_u16 |
663 | | |
664 | 0 | fn serialize_u32(self, v: u32) -> Result<Ok, Error> { |
665 | 0 | self.erased_serialize_u32(v) |
666 | 0 | } Unexecuted instantiation: <&mut dyn erased_serde::ser::Serializer as serde::ser::Serializer>::serialize_u32 Unexecuted instantiation: <&mut dyn erased_serde::ser::Serializer + core::marker::Send as serde::ser::Serializer>::serialize_u32 Unexecuted instantiation: <&mut dyn erased_serde::ser::Serializer + core::marker::Sync as serde::ser::Serializer>::serialize_u32 Unexecuted instantiation: <&mut dyn erased_serde::ser::Serializer + core::marker::Send + core::marker::Sync as serde::ser::Serializer>::serialize_u32 |
667 | | |
668 | 0 | fn serialize_u64(self, v: u64) -> Result<Ok, Error> { |
669 | 0 | self.erased_serialize_u64(v) |
670 | 0 | } Unexecuted instantiation: <&mut dyn erased_serde::ser::Serializer as serde::ser::Serializer>::serialize_u64 Unexecuted instantiation: <&mut dyn erased_serde::ser::Serializer + core::marker::Send as serde::ser::Serializer>::serialize_u64 Unexecuted instantiation: <&mut dyn erased_serde::ser::Serializer + core::marker::Sync as serde::ser::Serializer>::serialize_u64 Unexecuted instantiation: <&mut dyn erased_serde::ser::Serializer + core::marker::Send + core::marker::Sync as serde::ser::Serializer>::serialize_u64 |
671 | | |
672 | 0 | fn serialize_u128(self, v: u128) -> Result<Ok, Error> { |
673 | 0 | self.erased_serialize_u128(v) |
674 | 0 | } Unexecuted instantiation: <&mut dyn erased_serde::ser::Serializer as serde::ser::Serializer>::serialize_u128 Unexecuted instantiation: <&mut dyn erased_serde::ser::Serializer + core::marker::Send as serde::ser::Serializer>::serialize_u128 Unexecuted instantiation: <&mut dyn erased_serde::ser::Serializer + core::marker::Sync as serde::ser::Serializer>::serialize_u128 Unexecuted instantiation: <&mut dyn erased_serde::ser::Serializer + core::marker::Send + core::marker::Sync as serde::ser::Serializer>::serialize_u128 |
675 | | |
676 | 0 | fn serialize_f32(self, v: f32) -> Result<Ok, Error> { |
677 | 0 | self.erased_serialize_f32(v) |
678 | 0 | } Unexecuted instantiation: <&mut dyn erased_serde::ser::Serializer as serde::ser::Serializer>::serialize_f32 Unexecuted instantiation: <&mut dyn erased_serde::ser::Serializer + core::marker::Send as serde::ser::Serializer>::serialize_f32 Unexecuted instantiation: <&mut dyn erased_serde::ser::Serializer + core::marker::Sync as serde::ser::Serializer>::serialize_f32 Unexecuted instantiation: <&mut dyn erased_serde::ser::Serializer + core::marker::Send + core::marker::Sync as serde::ser::Serializer>::serialize_f32 |
679 | | |
680 | 0 | fn serialize_f64(self, v: f64) -> Result<Ok, Error> { |
681 | 0 | self.erased_serialize_f64(v) |
682 | 0 | } Unexecuted instantiation: <&mut dyn erased_serde::ser::Serializer as serde::ser::Serializer>::serialize_f64 Unexecuted instantiation: <&mut dyn erased_serde::ser::Serializer + core::marker::Send as serde::ser::Serializer>::serialize_f64 Unexecuted instantiation: <&mut dyn erased_serde::ser::Serializer + core::marker::Sync as serde::ser::Serializer>::serialize_f64 Unexecuted instantiation: <&mut dyn erased_serde::ser::Serializer + core::marker::Send + core::marker::Sync as serde::ser::Serializer>::serialize_f64 |
683 | | |
684 | 0 | fn serialize_char(self, v: char) -> Result<Ok, Error> { |
685 | 0 | self.erased_serialize_char(v) |
686 | 0 | } Unexecuted instantiation: <&mut dyn erased_serde::ser::Serializer as serde::ser::Serializer>::serialize_char Unexecuted instantiation: <&mut dyn erased_serde::ser::Serializer + core::marker::Send as serde::ser::Serializer>::serialize_char Unexecuted instantiation: <&mut dyn erased_serde::ser::Serializer + core::marker::Sync as serde::ser::Serializer>::serialize_char Unexecuted instantiation: <&mut dyn erased_serde::ser::Serializer + core::marker::Send + core::marker::Sync as serde::ser::Serializer>::serialize_char |
687 | | |
688 | 0 | fn serialize_str(self, v: &str) -> Result<Ok, Error> { |
689 | 0 | self.erased_serialize_str(v) |
690 | 0 | } Unexecuted instantiation: <&mut dyn erased_serde::ser::Serializer as serde::ser::Serializer>::serialize_str Unexecuted instantiation: <&mut dyn erased_serde::ser::Serializer + core::marker::Send as serde::ser::Serializer>::serialize_str Unexecuted instantiation: <&mut dyn erased_serde::ser::Serializer + core::marker::Sync as serde::ser::Serializer>::serialize_str Unexecuted instantiation: <&mut dyn erased_serde::ser::Serializer + core::marker::Send + core::marker::Sync as serde::ser::Serializer>::serialize_str |
691 | | |
692 | 0 | fn serialize_bytes(self, v: &[u8]) -> Result<Ok, Error> { |
693 | 0 | self.erased_serialize_bytes(v) |
694 | 0 | } Unexecuted instantiation: <&mut dyn erased_serde::ser::Serializer as serde::ser::Serializer>::serialize_bytes Unexecuted instantiation: <&mut dyn erased_serde::ser::Serializer + core::marker::Send as serde::ser::Serializer>::serialize_bytes Unexecuted instantiation: <&mut dyn erased_serde::ser::Serializer + core::marker::Sync as serde::ser::Serializer>::serialize_bytes Unexecuted instantiation: <&mut dyn erased_serde::ser::Serializer + core::marker::Send + core::marker::Sync as serde::ser::Serializer>::serialize_bytes |
695 | | |
696 | 0 | fn serialize_none(self) -> Result<Ok, Error> { |
697 | 0 | self.erased_serialize_none() |
698 | 0 | } Unexecuted instantiation: <&mut dyn erased_serde::ser::Serializer as serde::ser::Serializer>::serialize_none Unexecuted instantiation: <&mut dyn erased_serde::ser::Serializer + core::marker::Send as serde::ser::Serializer>::serialize_none Unexecuted instantiation: <&mut dyn erased_serde::ser::Serializer + core::marker::Sync as serde::ser::Serializer>::serialize_none Unexecuted instantiation: <&mut dyn erased_serde::ser::Serializer + core::marker::Send + core::marker::Sync as serde::ser::Serializer>::serialize_none |
699 | | |
700 | 0 | fn serialize_some<T>(self, v: &T) -> Result<Ok, Error> |
701 | 0 | where |
702 | 0 | T: ?Sized + serde::Serialize, |
703 | 0 | { |
704 | 0 | self.erased_serialize_some(&v) |
705 | 0 | } Unexecuted instantiation: <&mut dyn erased_serde::ser::Serializer as serde::ser::Serializer>::serialize_some::<dyn erased_serde::ser::Serialize> Unexecuted instantiation: <&mut dyn erased_serde::ser::Serializer as serde::ser::Serializer>::serialize_some::<_> Unexecuted instantiation: <&mut dyn erased_serde::ser::Serializer + core::marker::Send as serde::ser::Serializer>::serialize_some::<_> Unexecuted instantiation: <&mut dyn erased_serde::ser::Serializer + core::marker::Sync as serde::ser::Serializer>::serialize_some::<_> Unexecuted instantiation: <&mut dyn erased_serde::ser::Serializer + core::marker::Send + core::marker::Sync as serde::ser::Serializer>::serialize_some::<_> |
706 | | |
707 | 0 | fn serialize_unit(self) -> Result<Ok, Error> { |
708 | 0 | self.erased_serialize_unit() |
709 | 0 | } Unexecuted instantiation: <&mut dyn erased_serde::ser::Serializer as serde::ser::Serializer>::serialize_unit Unexecuted instantiation: <&mut dyn erased_serde::ser::Serializer + core::marker::Send as serde::ser::Serializer>::serialize_unit Unexecuted instantiation: <&mut dyn erased_serde::ser::Serializer + core::marker::Sync as serde::ser::Serializer>::serialize_unit Unexecuted instantiation: <&mut dyn erased_serde::ser::Serializer + core::marker::Send + core::marker::Sync as serde::ser::Serializer>::serialize_unit |
710 | | |
711 | 0 | fn serialize_unit_struct(self, name: &'static str) -> Result<Ok, Error> { |
712 | 0 | self.erased_serialize_unit_struct(name) |
713 | 0 | } Unexecuted instantiation: <&mut dyn erased_serde::ser::Serializer as serde::ser::Serializer>::serialize_unit_struct Unexecuted instantiation: <&mut dyn erased_serde::ser::Serializer + core::marker::Send as serde::ser::Serializer>::serialize_unit_struct Unexecuted instantiation: <&mut dyn erased_serde::ser::Serializer + core::marker::Sync as serde::ser::Serializer>::serialize_unit_struct Unexecuted instantiation: <&mut dyn erased_serde::ser::Serializer + core::marker::Send + core::marker::Sync as serde::ser::Serializer>::serialize_unit_struct |
714 | | |
715 | 0 | fn serialize_unit_variant( |
716 | 0 | self, |
717 | 0 | name: &'static str, |
718 | 0 | variant_index: u32, |
719 | 0 | variant: &'static str, |
720 | 0 | ) -> Result<Ok, Error> { |
721 | 0 | self.erased_serialize_unit_variant(name, variant_index, variant) |
722 | 0 | } Unexecuted instantiation: <&mut dyn erased_serde::ser::Serializer as serde::ser::Serializer>::serialize_unit_variant Unexecuted instantiation: <&mut dyn erased_serde::ser::Serializer + core::marker::Send as serde::ser::Serializer>::serialize_unit_variant Unexecuted instantiation: <&mut dyn erased_serde::ser::Serializer + core::marker::Sync as serde::ser::Serializer>::serialize_unit_variant Unexecuted instantiation: <&mut dyn erased_serde::ser::Serializer + core::marker::Send + core::marker::Sync as serde::ser::Serializer>::serialize_unit_variant |
723 | | |
724 | 0 | fn serialize_newtype_struct<T>(self, name: &'static str, v: &T) -> Result<Ok, Error> |
725 | 0 | where |
726 | 0 | T: ?Sized + serde::Serialize, |
727 | 0 | { |
728 | 0 | self.erased_serialize_newtype_struct(name, &v) |
729 | 0 | } Unexecuted instantiation: <&mut dyn erased_serde::ser::Serializer as serde::ser::Serializer>::serialize_newtype_struct::<dyn erased_serde::ser::Serialize> Unexecuted instantiation: <&mut dyn erased_serde::ser::Serializer as serde::ser::Serializer>::serialize_newtype_struct::<_> Unexecuted instantiation: <&mut dyn erased_serde::ser::Serializer + core::marker::Send as serde::ser::Serializer>::serialize_newtype_struct::<_> Unexecuted instantiation: <&mut dyn erased_serde::ser::Serializer + core::marker::Sync as serde::ser::Serializer>::serialize_newtype_struct::<_> Unexecuted instantiation: <&mut dyn erased_serde::ser::Serializer + core::marker::Send + core::marker::Sync as serde::ser::Serializer>::serialize_newtype_struct::<_> |
730 | | |
731 | 0 | fn serialize_newtype_variant<T>( |
732 | 0 | self, |
733 | 0 | name: &'static str, |
734 | 0 | variant_index: u32, |
735 | 0 | variant: &'static str, |
736 | 0 | v: &T, |
737 | 0 | ) -> Result<Ok, Error> |
738 | 0 | where |
739 | 0 | T: ?Sized + serde::Serialize, |
740 | 0 | { |
741 | 0 | self.erased_serialize_newtype_variant(name, variant_index, variant, &v) |
742 | 0 | } Unexecuted instantiation: <&mut dyn erased_serde::ser::Serializer as serde::ser::Serializer>::serialize_newtype_variant::<dyn erased_serde::ser::Serialize> Unexecuted instantiation: <&mut dyn erased_serde::ser::Serializer as serde::ser::Serializer>::serialize_newtype_variant::<_> Unexecuted instantiation: <&mut dyn erased_serde::ser::Serializer + core::marker::Send as serde::ser::Serializer>::serialize_newtype_variant::<_> Unexecuted instantiation: <&mut dyn erased_serde::ser::Serializer + core::marker::Sync as serde::ser::Serializer>::serialize_newtype_variant::<_> Unexecuted instantiation: <&mut dyn erased_serde::ser::Serializer + core::marker::Send + core::marker::Sync as serde::ser::Serializer>::serialize_newtype_variant::<_> |
743 | | |
744 | 0 | fn serialize_seq(self, len: Option<usize>) -> Result<Seq<'a>, Error> { |
745 | 0 | self.erased_serialize_seq(len) |
746 | 0 | } Unexecuted instantiation: <&mut dyn erased_serde::ser::Serializer as serde::ser::Serializer>::serialize_seq Unexecuted instantiation: <&mut dyn erased_serde::ser::Serializer + core::marker::Send as serde::ser::Serializer>::serialize_seq Unexecuted instantiation: <&mut dyn erased_serde::ser::Serializer + core::marker::Sync as serde::ser::Serializer>::serialize_seq Unexecuted instantiation: <&mut dyn erased_serde::ser::Serializer + core::marker::Send + core::marker::Sync as serde::ser::Serializer>::serialize_seq |
747 | | |
748 | 0 | fn serialize_tuple(self, len: usize) -> Result<Tuple<'a>, Error> { |
749 | 0 | self.erased_serialize_tuple(len) |
750 | 0 | } Unexecuted instantiation: <&mut dyn erased_serde::ser::Serializer as serde::ser::Serializer>::serialize_tuple Unexecuted instantiation: <&mut dyn erased_serde::ser::Serializer + core::marker::Send as serde::ser::Serializer>::serialize_tuple Unexecuted instantiation: <&mut dyn erased_serde::ser::Serializer + core::marker::Sync as serde::ser::Serializer>::serialize_tuple Unexecuted instantiation: <&mut dyn erased_serde::ser::Serializer + core::marker::Send + core::marker::Sync as serde::ser::Serializer>::serialize_tuple |
751 | | |
752 | 0 | fn serialize_tuple_struct( |
753 | 0 | self, |
754 | 0 | name: &'static str, |
755 | 0 | len: usize, |
756 | 0 | ) -> Result<TupleStruct<'a>, Error> { |
757 | 0 | self.erased_serialize_tuple_struct(name, len) |
758 | 0 | } Unexecuted instantiation: <&mut dyn erased_serde::ser::Serializer as serde::ser::Serializer>::serialize_tuple_struct Unexecuted instantiation: <&mut dyn erased_serde::ser::Serializer + core::marker::Send as serde::ser::Serializer>::serialize_tuple_struct Unexecuted instantiation: <&mut dyn erased_serde::ser::Serializer + core::marker::Sync as serde::ser::Serializer>::serialize_tuple_struct Unexecuted instantiation: <&mut dyn erased_serde::ser::Serializer + core::marker::Send + core::marker::Sync as serde::ser::Serializer>::serialize_tuple_struct |
759 | | |
760 | 0 | fn serialize_tuple_variant( |
761 | 0 | self, |
762 | 0 | name: &'static str, |
763 | 0 | variant_index: u32, |
764 | 0 | variant: &'static str, |
765 | 0 | len: usize, |
766 | 0 | ) -> Result<TupleVariant<'a>, Error> { |
767 | 0 | self.erased_serialize_tuple_variant(name, variant_index, variant, len) |
768 | 0 | } Unexecuted instantiation: <&mut dyn erased_serde::ser::Serializer as serde::ser::Serializer>::serialize_tuple_variant Unexecuted instantiation: <&mut dyn erased_serde::ser::Serializer + core::marker::Send as serde::ser::Serializer>::serialize_tuple_variant Unexecuted instantiation: <&mut dyn erased_serde::ser::Serializer + core::marker::Sync as serde::ser::Serializer>::serialize_tuple_variant Unexecuted instantiation: <&mut dyn erased_serde::ser::Serializer + core::marker::Send + core::marker::Sync as serde::ser::Serializer>::serialize_tuple_variant |
769 | | |
770 | 0 | fn serialize_map(self, len: Option<usize>) -> Result<Map<'a>, Error> { |
771 | 0 | self.erased_serialize_map(len) |
772 | 0 | } Unexecuted instantiation: <&mut dyn erased_serde::ser::Serializer as serde::ser::Serializer>::serialize_map Unexecuted instantiation: <&mut dyn erased_serde::ser::Serializer + core::marker::Send as serde::ser::Serializer>::serialize_map Unexecuted instantiation: <&mut dyn erased_serde::ser::Serializer + core::marker::Sync as serde::ser::Serializer>::serialize_map Unexecuted instantiation: <&mut dyn erased_serde::ser::Serializer + core::marker::Send + core::marker::Sync as serde::ser::Serializer>::serialize_map |
773 | | |
774 | 0 | fn serialize_struct(self, name: &'static str, len: usize) -> Result<Struct<'a>, Error> { |
775 | 0 | self.erased_serialize_struct(name, len) |
776 | 0 | } Unexecuted instantiation: <&mut dyn erased_serde::ser::Serializer as serde::ser::Serializer>::serialize_struct Unexecuted instantiation: <&mut dyn erased_serde::ser::Serializer + core::marker::Send as serde::ser::Serializer>::serialize_struct Unexecuted instantiation: <&mut dyn erased_serde::ser::Serializer + core::marker::Sync as serde::ser::Serializer>::serialize_struct Unexecuted instantiation: <&mut dyn erased_serde::ser::Serializer + core::marker::Send + core::marker::Sync as serde::ser::Serializer>::serialize_struct |
777 | | |
778 | 0 | fn serialize_struct_variant( |
779 | 0 | self, |
780 | 0 | name: &'static str, |
781 | 0 | variant_index: u32, |
782 | 0 | variant: &'static str, |
783 | 0 | len: usize, |
784 | 0 | ) -> Result<StructVariant<'a>, Error> { |
785 | 0 | self.erased_serialize_struct_variant(name, variant_index, variant, len) |
786 | 0 | } Unexecuted instantiation: <&mut dyn erased_serde::ser::Serializer as serde::ser::Serializer>::serialize_struct_variant Unexecuted instantiation: <&mut dyn erased_serde::ser::Serializer + core::marker::Send as serde::ser::Serializer>::serialize_struct_variant Unexecuted instantiation: <&mut dyn erased_serde::ser::Serializer + core::marker::Sync as serde::ser::Serializer>::serialize_struct_variant Unexecuted instantiation: <&mut dyn erased_serde::ser::Serializer + core::marker::Send + core::marker::Sync as serde::ser::Serializer>::serialize_struct_variant |
787 | | |
788 | | #[cfg(not(any(feature = "std", feature = "alloc")))] |
789 | | fn collect_str<T>(self, value: &T) -> Result<Self::Ok, Self::Error> |
790 | | where |
791 | | T: ?Sized + Display, |
792 | | { |
793 | | unreachable!() |
794 | | } |
795 | | |
796 | 0 | fn is_human_readable(&self) -> bool { |
797 | 0 | self.erased_is_human_readable() |
798 | 0 | } Unexecuted instantiation: <&mut dyn erased_serde::ser::Serializer as serde::ser::Serializer>::is_human_readable Unexecuted instantiation: <&mut dyn erased_serde::ser::Serializer + core::marker::Send as serde::ser::Serializer>::is_human_readable Unexecuted instantiation: <&mut dyn erased_serde::ser::Serializer + core::marker::Sync as serde::ser::Serializer>::is_human_readable Unexecuted instantiation: <&mut dyn erased_serde::ser::Serializer + core::marker::Send + core::marker::Sync as serde::ser::Serializer>::is_human_readable |
799 | | } |
800 | | }; |
801 | | } |
802 | | |
803 | | impl_serializer_for_trait_object!(&'a mut (dyn Serializer + '_)); |
804 | | impl_serializer_for_trait_object!(&'a mut (dyn Serializer + Send + '_)); |
805 | | impl_serializer_for_trait_object!(&'a mut (dyn Serializer + Sync + '_)); |
806 | | impl_serializer_for_trait_object!(&'a mut (dyn Serializer + Send + Sync + '_)); |
807 | | |
808 | | pub struct Seq<'a> { |
809 | | data: Any, |
810 | | serialize_element: unsafe fn(&mut Any, &dyn Serialize) -> Result<(), Error>, |
811 | | end: unsafe fn(Any) -> Result<Ok, Error>, |
812 | | lifetime: PhantomData<&'a dyn Serializer>, |
813 | | } |
814 | | |
815 | | impl<'a> Seq<'a> { |
816 | 0 | unsafe fn new<T>(data: T) -> Self |
817 | 0 | where |
818 | 0 | T: serde::ser::SerializeSeq, |
819 | 0 | { |
820 | 0 | Seq { |
821 | 0 | data: unsafe { Any::new(data) }, |
822 | 0 | serialize_element: { |
823 | 0 | unsafe fn serialize_element<T>( |
824 | 0 | data: &mut Any, |
825 | 0 | v: &dyn Serialize, |
826 | 0 | ) -> Result<(), Error> |
827 | 0 | where |
828 | 0 | T: serde::ser::SerializeSeq, |
829 | 0 | { |
830 | 0 | unsafe { data.view::<T>().serialize_element(v).map_err(erase) } |
831 | 0 | } Unexecuted instantiation: <erased_serde::ser::Seq>::new::serialize_element::<erased_serde::ser::Seq> Unexecuted instantiation: <erased_serde::ser::Seq>::new::serialize_element::<serde_json::ser::Compound<&mut alloc::vec::Vec<u8>, serde_json::ser::CompactFormatter>> Unexecuted instantiation: <erased_serde::ser::Seq>::new::serialize_element::<serde::ser::impossible::Impossible<alloc::string::String, serde_json::error::Error>> Unexecuted instantiation: <erased_serde::ser::Seq>::new::serialize_element::<serde::ser::impossible::Impossible<(), serde_json::error::Error>> Unexecuted instantiation: <erased_serde::ser::Seq>::new::serialize_element::<serde_json::value::ser::SerializeVec> Unexecuted instantiation: <erased_serde::ser::Seq>::new::serialize_element::<_> |
832 | 0 | serialize_element::<T> |
833 | 0 | }, |
834 | 0 | end: { |
835 | 0 | unsafe fn end<T>(data: Any) -> Result<Ok, Error> |
836 | 0 | where |
837 | 0 | T: serde::ser::SerializeSeq, |
838 | 0 | { |
839 | 0 | unsafe { data.take::<T>().end().unsafe_map(Ok::new).map_err(erase) } |
840 | 0 | } Unexecuted instantiation: <erased_serde::ser::Seq>::new::end::<erased_serde::ser::Seq> Unexecuted instantiation: <erased_serde::ser::Seq>::new::end::<serde_json::ser::Compound<&mut alloc::vec::Vec<u8>, serde_json::ser::CompactFormatter>> Unexecuted instantiation: <erased_serde::ser::Seq>::new::end::<serde::ser::impossible::Impossible<alloc::string::String, serde_json::error::Error>> Unexecuted instantiation: <erased_serde::ser::Seq>::new::end::<serde::ser::impossible::Impossible<(), serde_json::error::Error>> Unexecuted instantiation: <erased_serde::ser::Seq>::new::end::<serde_json::value::ser::SerializeVec> Unexecuted instantiation: <erased_serde::ser::Seq>::new::end::<_> |
841 | 0 | end::<T> |
842 | 0 | }, |
843 | 0 | lifetime: PhantomData, |
844 | 0 | } |
845 | 0 | } Unexecuted instantiation: <erased_serde::ser::Seq>::new::<erased_serde::ser::Seq> Unexecuted instantiation: <erased_serde::ser::Seq>::new::<serde_json::ser::Compound<&mut alloc::vec::Vec<u8>, serde_json::ser::CompactFormatter>> Unexecuted instantiation: <erased_serde::ser::Seq>::new::<serde::ser::impossible::Impossible<alloc::string::String, serde_json::error::Error>> Unexecuted instantiation: <erased_serde::ser::Seq>::new::<serde::ser::impossible::Impossible<(), serde_json::error::Error>> Unexecuted instantiation: <erased_serde::ser::Seq>::new::<serde_json::value::ser::SerializeVec> Unexecuted instantiation: <erased_serde::ser::Seq>::new::<_> |
846 | | } |
847 | | |
848 | | impl<'a> SerializeSeq for Seq<'a> { |
849 | | type Ok = Ok; |
850 | | type Error = Error; |
851 | | |
852 | 0 | fn serialize_element<T>(&mut self, value: &T) -> Result<(), Error> |
853 | 0 | where |
854 | 0 | T: ?Sized + serde::Serialize, |
855 | 0 | { |
856 | 0 | unsafe { (self.serialize_element)(&mut self.data, &value) } |
857 | 0 | } Unexecuted instantiation: <erased_serde::ser::Seq as serde::ser::SerializeSeq>::serialize_element::<dyn erased_serde::ser::Serialize> Unexecuted instantiation: <erased_serde::ser::Seq as serde::ser::SerializeSeq>::serialize_element::<&starlark::values::layout::value::Value> Unexecuted instantiation: <erased_serde::ser::Seq as serde::ser::SerializeSeq>::serialize_element::<_> |
858 | | |
859 | 0 | fn end(self) -> Result<Ok, Error> { |
860 | 0 | unsafe { (self.end)(self.data) } |
861 | 0 | } |
862 | | } |
863 | | |
864 | | pub struct Tuple<'a> { |
865 | | data: Any, |
866 | | serialize_element: unsafe fn(&mut Any, &dyn Serialize) -> Result<(), Error>, |
867 | | end: unsafe fn(Any) -> Result<Ok, Error>, |
868 | | lifetime: PhantomData<&'a dyn Serializer>, |
869 | | } |
870 | | |
871 | | impl<'a> Tuple<'a> { |
872 | 0 | unsafe fn new<T>(data: T) -> Self |
873 | 0 | where |
874 | 0 | T: serde::ser::SerializeTuple, |
875 | 0 | { |
876 | 0 | Tuple { |
877 | 0 | data: unsafe { Any::new(data) }, |
878 | 0 | serialize_element: { |
879 | 0 | unsafe fn serialize_element<T>( |
880 | 0 | data: &mut Any, |
881 | 0 | v: &dyn Serialize, |
882 | 0 | ) -> Result<(), Error> |
883 | 0 | where |
884 | 0 | T: serde::ser::SerializeTuple, |
885 | 0 | { |
886 | 0 | unsafe { data.view::<T>().serialize_element(v).map_err(erase) } |
887 | 0 | } Unexecuted instantiation: <erased_serde::ser::Tuple>::new::serialize_element::<erased_serde::ser::Tuple> Unexecuted instantiation: <erased_serde::ser::Tuple>::new::serialize_element::<serde_json::ser::Compound<&mut alloc::vec::Vec<u8>, serde_json::ser::CompactFormatter>> Unexecuted instantiation: <erased_serde::ser::Tuple>::new::serialize_element::<serde::ser::impossible::Impossible<alloc::string::String, serde_json::error::Error>> Unexecuted instantiation: <erased_serde::ser::Tuple>::new::serialize_element::<serde::ser::impossible::Impossible<(), serde_json::error::Error>> Unexecuted instantiation: <erased_serde::ser::Tuple>::new::serialize_element::<serde_json::value::ser::SerializeVec> Unexecuted instantiation: <erased_serde::ser::Tuple>::new::serialize_element::<_> |
888 | 0 | serialize_element::<T> |
889 | 0 | }, |
890 | 0 | end: { |
891 | 0 | unsafe fn end<T>(data: Any) -> Result<Ok, Error> |
892 | 0 | where |
893 | 0 | T: serde::ser::SerializeTuple, |
894 | 0 | { |
895 | 0 | unsafe { data.take::<T>().end().unsafe_map(Ok::new).map_err(erase) } |
896 | 0 | } Unexecuted instantiation: <erased_serde::ser::Tuple>::new::end::<erased_serde::ser::Tuple> Unexecuted instantiation: <erased_serde::ser::Tuple>::new::end::<serde_json::ser::Compound<&mut alloc::vec::Vec<u8>, serde_json::ser::CompactFormatter>> Unexecuted instantiation: <erased_serde::ser::Tuple>::new::end::<serde::ser::impossible::Impossible<alloc::string::String, serde_json::error::Error>> Unexecuted instantiation: <erased_serde::ser::Tuple>::new::end::<serde::ser::impossible::Impossible<(), serde_json::error::Error>> Unexecuted instantiation: <erased_serde::ser::Tuple>::new::end::<serde_json::value::ser::SerializeVec> Unexecuted instantiation: <erased_serde::ser::Tuple>::new::end::<_> |
897 | 0 | end::<T> |
898 | 0 | }, |
899 | 0 | lifetime: PhantomData, |
900 | 0 | } |
901 | 0 | } Unexecuted instantiation: <erased_serde::ser::Tuple>::new::<erased_serde::ser::Tuple> Unexecuted instantiation: <erased_serde::ser::Tuple>::new::<serde_json::ser::Compound<&mut alloc::vec::Vec<u8>, serde_json::ser::CompactFormatter>> Unexecuted instantiation: <erased_serde::ser::Tuple>::new::<serde::ser::impossible::Impossible<alloc::string::String, serde_json::error::Error>> Unexecuted instantiation: <erased_serde::ser::Tuple>::new::<serde::ser::impossible::Impossible<(), serde_json::error::Error>> Unexecuted instantiation: <erased_serde::ser::Tuple>::new::<serde_json::value::ser::SerializeVec> Unexecuted instantiation: <erased_serde::ser::Tuple>::new::<_> |
902 | | } |
903 | | |
904 | | impl<'a> SerializeTuple for Tuple<'a> { |
905 | | type Ok = Ok; |
906 | | type Error = Error; |
907 | | |
908 | 0 | fn serialize_element<T>(&mut self, value: &T) -> Result<(), Error> |
909 | 0 | where |
910 | 0 | T: ?Sized + serde::Serialize, |
911 | 0 | { |
912 | 0 | unsafe { (self.serialize_element)(&mut self.data, &value) } |
913 | 0 | } Unexecuted instantiation: <erased_serde::ser::Tuple as serde::ser::SerializeTuple>::serialize_element::<dyn erased_serde::ser::Serialize> Unexecuted instantiation: <erased_serde::ser::Tuple as serde::ser::SerializeTuple>::serialize_element::<starlark::values::layout::value::FrozenValue> Unexecuted instantiation: <erased_serde::ser::Tuple as serde::ser::SerializeTuple>::serialize_element::<starlark::values::layout::value::Value> Unexecuted instantiation: <erased_serde::ser::Tuple as serde::ser::SerializeTuple>::serialize_element::<_> |
914 | | |
915 | 0 | fn end(self) -> Result<Ok, Error> { |
916 | 0 | unsafe { (self.end)(self.data) } |
917 | 0 | } |
918 | | } |
919 | | |
920 | | pub struct TupleStruct<'a> { |
921 | | data: Any, |
922 | | serialize_field: unsafe fn(&mut Any, &dyn Serialize) -> Result<(), Error>, |
923 | | end: unsafe fn(Any) -> Result<Ok, Error>, |
924 | | lifetime: PhantomData<&'a dyn Serializer>, |
925 | | } |
926 | | |
927 | | impl<'a> TupleStruct<'a> { |
928 | 0 | unsafe fn new<T>(data: T) -> Self |
929 | 0 | where |
930 | 0 | T: serde::ser::SerializeTupleStruct, |
931 | 0 | { |
932 | 0 | TupleStruct { |
933 | 0 | data: unsafe { Any::new(data) }, |
934 | 0 | serialize_field: { |
935 | 0 | unsafe fn serialize_field<T>(data: &mut Any, v: &dyn Serialize) -> Result<(), Error> |
936 | 0 | where |
937 | 0 | T: serde::ser::SerializeTupleStruct, |
938 | 0 | { |
939 | 0 | unsafe { data.view::<T>().serialize_field(v).map_err(erase) } |
940 | 0 | } Unexecuted instantiation: <erased_serde::ser::TupleStruct>::new::serialize_field::<erased_serde::ser::TupleStruct> Unexecuted instantiation: <erased_serde::ser::TupleStruct>::new::serialize_field::<serde_json::ser::Compound<&mut alloc::vec::Vec<u8>, serde_json::ser::CompactFormatter>> Unexecuted instantiation: <erased_serde::ser::TupleStruct>::new::serialize_field::<serde::ser::impossible::Impossible<alloc::string::String, serde_json::error::Error>> Unexecuted instantiation: <erased_serde::ser::TupleStruct>::new::serialize_field::<serde::ser::impossible::Impossible<(), serde_json::error::Error>> Unexecuted instantiation: <erased_serde::ser::TupleStruct>::new::serialize_field::<serde_json::value::ser::SerializeVec> Unexecuted instantiation: <erased_serde::ser::TupleStruct>::new::serialize_field::<_> |
941 | 0 | serialize_field::<T> |
942 | 0 | }, |
943 | 0 | end: { |
944 | 0 | unsafe fn end<T>(data: Any) -> Result<Ok, Error> |
945 | 0 | where |
946 | 0 | T: serde::ser::SerializeTupleStruct, |
947 | 0 | { |
948 | 0 | unsafe { data.take::<T>().end().unsafe_map(Ok::new).map_err(erase) } |
949 | 0 | } Unexecuted instantiation: <erased_serde::ser::TupleStruct>::new::end::<erased_serde::ser::TupleStruct> Unexecuted instantiation: <erased_serde::ser::TupleStruct>::new::end::<serde_json::ser::Compound<&mut alloc::vec::Vec<u8>, serde_json::ser::CompactFormatter>> Unexecuted instantiation: <erased_serde::ser::TupleStruct>::new::end::<serde::ser::impossible::Impossible<alloc::string::String, serde_json::error::Error>> Unexecuted instantiation: <erased_serde::ser::TupleStruct>::new::end::<serde::ser::impossible::Impossible<(), serde_json::error::Error>> Unexecuted instantiation: <erased_serde::ser::TupleStruct>::new::end::<serde_json::value::ser::SerializeVec> Unexecuted instantiation: <erased_serde::ser::TupleStruct>::new::end::<_> |
950 | 0 | end::<T> |
951 | 0 | }, |
952 | 0 | lifetime: PhantomData, |
953 | 0 | } |
954 | 0 | } Unexecuted instantiation: <erased_serde::ser::TupleStruct>::new::<erased_serde::ser::TupleStruct> Unexecuted instantiation: <erased_serde::ser::TupleStruct>::new::<serde_json::ser::Compound<&mut alloc::vec::Vec<u8>, serde_json::ser::CompactFormatter>> Unexecuted instantiation: <erased_serde::ser::TupleStruct>::new::<serde::ser::impossible::Impossible<alloc::string::String, serde_json::error::Error>> Unexecuted instantiation: <erased_serde::ser::TupleStruct>::new::<serde::ser::impossible::Impossible<(), serde_json::error::Error>> Unexecuted instantiation: <erased_serde::ser::TupleStruct>::new::<serde_json::value::ser::SerializeVec> Unexecuted instantiation: <erased_serde::ser::TupleStruct>::new::<_> |
955 | | } |
956 | | |
957 | | impl<'a> SerializeTupleStruct for TupleStruct<'a> { |
958 | | type Ok = Ok; |
959 | | type Error = Error; |
960 | | |
961 | 0 | fn serialize_field<T>(&mut self, value: &T) -> Result<(), Error> |
962 | 0 | where |
963 | 0 | T: ?Sized + serde::Serialize, |
964 | 0 | { |
965 | 0 | unsafe { (self.serialize_field)(&mut self.data, &value) } |
966 | 0 | } Unexecuted instantiation: <erased_serde::ser::TupleStruct as serde::ser::SerializeTupleStruct>::serialize_field::<dyn erased_serde::ser::Serialize> Unexecuted instantiation: <erased_serde::ser::TupleStruct as serde::ser::SerializeTupleStruct>::serialize_field::<_> |
967 | | |
968 | 0 | fn end(self) -> Result<Ok, Error> { |
969 | 0 | unsafe { (self.end)(self.data) } |
970 | 0 | } |
971 | | } |
972 | | |
973 | | pub struct TupleVariant<'a> { |
974 | | data: Any, |
975 | | serialize_field: unsafe fn(&mut Any, &dyn Serialize) -> Result<(), Error>, |
976 | | end: unsafe fn(Any) -> Result<Ok, Error>, |
977 | | lifetime: PhantomData<&'a dyn Serializer>, |
978 | | } |
979 | | |
980 | | impl<'a> TupleVariant<'a> { |
981 | 0 | unsafe fn new<T>(data: T) -> Self |
982 | 0 | where |
983 | 0 | T: serde::ser::SerializeTupleVariant, |
984 | 0 | { |
985 | 0 | TupleVariant { |
986 | 0 | data: unsafe { Any::new(data) }, |
987 | 0 | serialize_field: { |
988 | 0 | unsafe fn serialize_field<T>(data: &mut Any, v: &dyn Serialize) -> Result<(), Error> |
989 | 0 | where |
990 | 0 | T: serde::ser::SerializeTupleVariant, |
991 | 0 | { |
992 | 0 | unsafe { data.view::<T>().serialize_field(v).map_err(erase) } |
993 | 0 | } Unexecuted instantiation: <erased_serde::ser::TupleVariant>::new::serialize_field::<erased_serde::ser::TupleVariant> Unexecuted instantiation: <erased_serde::ser::TupleVariant>::new::serialize_field::<serde_json::ser::Compound<&mut alloc::vec::Vec<u8>, serde_json::ser::CompactFormatter>> Unexecuted instantiation: <erased_serde::ser::TupleVariant>::new::serialize_field::<serde::ser::impossible::Impossible<alloc::string::String, serde_json::error::Error>> Unexecuted instantiation: <erased_serde::ser::TupleVariant>::new::serialize_field::<serde::ser::impossible::Impossible<(), serde_json::error::Error>> Unexecuted instantiation: <erased_serde::ser::TupleVariant>::new::serialize_field::<serde_json::value::ser::SerializeTupleVariant> Unexecuted instantiation: <erased_serde::ser::TupleVariant>::new::serialize_field::<_> |
994 | 0 | serialize_field::<T> |
995 | 0 | }, |
996 | 0 | end: { |
997 | 0 | unsafe fn end<T>(data: Any) -> Result<Ok, Error> |
998 | 0 | where |
999 | 0 | T: serde::ser::SerializeTupleVariant, |
1000 | 0 | { |
1001 | 0 | unsafe { data.take::<T>().end().unsafe_map(Ok::new).map_err(erase) } |
1002 | 0 | } Unexecuted instantiation: <erased_serde::ser::TupleVariant>::new::end::<erased_serde::ser::TupleVariant> Unexecuted instantiation: <erased_serde::ser::TupleVariant>::new::end::<serde_json::ser::Compound<&mut alloc::vec::Vec<u8>, serde_json::ser::CompactFormatter>> Unexecuted instantiation: <erased_serde::ser::TupleVariant>::new::end::<serde::ser::impossible::Impossible<alloc::string::String, serde_json::error::Error>> Unexecuted instantiation: <erased_serde::ser::TupleVariant>::new::end::<serde::ser::impossible::Impossible<(), serde_json::error::Error>> Unexecuted instantiation: <erased_serde::ser::TupleVariant>::new::end::<serde_json::value::ser::SerializeTupleVariant> Unexecuted instantiation: <erased_serde::ser::TupleVariant>::new::end::<_> |
1003 | 0 | end::<T> |
1004 | 0 | }, |
1005 | 0 | lifetime: PhantomData, |
1006 | 0 | } |
1007 | 0 | } Unexecuted instantiation: <erased_serde::ser::TupleVariant>::new::<erased_serde::ser::TupleVariant> Unexecuted instantiation: <erased_serde::ser::TupleVariant>::new::<serde_json::ser::Compound<&mut alloc::vec::Vec<u8>, serde_json::ser::CompactFormatter>> Unexecuted instantiation: <erased_serde::ser::TupleVariant>::new::<serde::ser::impossible::Impossible<alloc::string::String, serde_json::error::Error>> Unexecuted instantiation: <erased_serde::ser::TupleVariant>::new::<serde::ser::impossible::Impossible<(), serde_json::error::Error>> Unexecuted instantiation: <erased_serde::ser::TupleVariant>::new::<serde_json::value::ser::SerializeTupleVariant> Unexecuted instantiation: <erased_serde::ser::TupleVariant>::new::<_> |
1008 | | } |
1009 | | |
1010 | | impl<'a> SerializeTupleVariant for TupleVariant<'a> { |
1011 | | type Ok = Ok; |
1012 | | type Error = Error; |
1013 | | |
1014 | 0 | fn serialize_field<T>(&mut self, value: &T) -> Result<(), Error> |
1015 | 0 | where |
1016 | 0 | T: ?Sized + serde::Serialize, |
1017 | 0 | { |
1018 | 0 | unsafe { (self.serialize_field)(&mut self.data, &value) } |
1019 | 0 | } Unexecuted instantiation: <erased_serde::ser::TupleVariant as serde::ser::SerializeTupleVariant>::serialize_field::<dyn erased_serde::ser::Serialize> Unexecuted instantiation: <erased_serde::ser::TupleVariant as serde::ser::SerializeTupleVariant>::serialize_field::<_> |
1020 | | |
1021 | 0 | fn end(self) -> Result<Ok, Error> { |
1022 | 0 | unsafe { (self.end)(self.data) } |
1023 | 0 | } |
1024 | | } |
1025 | | |
1026 | | pub struct Map<'a> { |
1027 | | data: Any, |
1028 | | serialize_key: unsafe fn(&mut Any, &dyn Serialize) -> Result<(), Error>, |
1029 | | serialize_value: unsafe fn(&mut Any, &dyn Serialize) -> Result<(), Error>, |
1030 | | serialize_entry: unsafe fn(&mut Any, &dyn Serialize, &dyn Serialize) -> Result<(), Error>, |
1031 | | end: unsafe fn(Any) -> Result<Ok, Error>, |
1032 | | lifetime: PhantomData<&'a dyn Serializer>, |
1033 | | } |
1034 | | |
1035 | | impl<'a> Map<'a> { |
1036 | 0 | unsafe fn new<T>(data: T) -> Self |
1037 | 0 | where |
1038 | 0 | T: serde::ser::SerializeMap, |
1039 | 0 | { |
1040 | 0 | Map { |
1041 | 0 | data: unsafe { Any::new(data) }, |
1042 | 0 | serialize_key: { |
1043 | 0 | unsafe fn serialize_key<T>(data: &mut Any, v: &dyn Serialize) -> Result<(), Error> |
1044 | 0 | where |
1045 | 0 | T: serde::ser::SerializeMap, |
1046 | 0 | { |
1047 | 0 | unsafe { data.view::<T>().serialize_key(v).map_err(erase) } |
1048 | 0 | } Unexecuted instantiation: <erased_serde::ser::Map>::new::serialize_key::<erased_serde::ser::Map> Unexecuted instantiation: <erased_serde::ser::Map>::new::serialize_key::<serde_json::ser::Compound<&mut alloc::vec::Vec<u8>, serde_json::ser::CompactFormatter>> Unexecuted instantiation: <erased_serde::ser::Map>::new::serialize_key::<serde::ser::impossible::Impossible<alloc::string::String, serde_json::error::Error>> Unexecuted instantiation: <erased_serde::ser::Map>::new::serialize_key::<serde::ser::impossible::Impossible<(), serde_json::error::Error>> Unexecuted instantiation: <erased_serde::ser::Map>::new::serialize_key::<serde_json::value::ser::SerializeMap> Unexecuted instantiation: <erased_serde::ser::Map>::new::serialize_key::<_> |
1049 | 0 | serialize_key::<T> |
1050 | 0 | }, |
1051 | 0 | serialize_value: { |
1052 | 0 | unsafe fn serialize_value<T>(data: &mut Any, v: &dyn Serialize) -> Result<(), Error> |
1053 | 0 | where |
1054 | 0 | T: serde::ser::SerializeMap, |
1055 | 0 | { |
1056 | 0 | unsafe { data.view::<T>().serialize_value(v).map_err(erase) } |
1057 | 0 | } Unexecuted instantiation: <erased_serde::ser::Map>::new::serialize_value::<erased_serde::ser::Map> Unexecuted instantiation: <erased_serde::ser::Map>::new::serialize_value::<serde_json::ser::Compound<&mut alloc::vec::Vec<u8>, serde_json::ser::CompactFormatter>> Unexecuted instantiation: <erased_serde::ser::Map>::new::serialize_value::<serde::ser::impossible::Impossible<alloc::string::String, serde_json::error::Error>> Unexecuted instantiation: <erased_serde::ser::Map>::new::serialize_value::<serde::ser::impossible::Impossible<(), serde_json::error::Error>> Unexecuted instantiation: <erased_serde::ser::Map>::new::serialize_value::<serde_json::value::ser::SerializeMap> Unexecuted instantiation: <erased_serde::ser::Map>::new::serialize_value::<_> |
1058 | 0 | serialize_value::<T> |
1059 | 0 | }, |
1060 | 0 | serialize_entry: { |
1061 | 0 | unsafe fn serialize_entry<T>( |
1062 | 0 | data: &mut Any, |
1063 | 0 | k: &dyn Serialize, |
1064 | 0 | v: &dyn Serialize, |
1065 | 0 | ) -> Result<(), Error> |
1066 | 0 | where |
1067 | 0 | T: serde::ser::SerializeMap, |
1068 | 0 | { |
1069 | 0 | unsafe { data.view::<T>().serialize_entry(k, v).map_err(erase) } |
1070 | 0 | } Unexecuted instantiation: <erased_serde::ser::Map>::new::serialize_entry::<erased_serde::ser::Map> Unexecuted instantiation: <erased_serde::ser::Map>::new::serialize_entry::<serde_json::ser::Compound<&mut alloc::vec::Vec<u8>, serde_json::ser::CompactFormatter>> Unexecuted instantiation: <erased_serde::ser::Map>::new::serialize_entry::<serde::ser::impossible::Impossible<alloc::string::String, serde_json::error::Error>> Unexecuted instantiation: <erased_serde::ser::Map>::new::serialize_entry::<serde::ser::impossible::Impossible<(), serde_json::error::Error>> Unexecuted instantiation: <erased_serde::ser::Map>::new::serialize_entry::<serde_json::value::ser::SerializeMap> Unexecuted instantiation: <erased_serde::ser::Map>::new::serialize_entry::<_> |
1071 | 0 | serialize_entry::<T> |
1072 | 0 | }, |
1073 | 0 | end: { |
1074 | 0 | unsafe fn end<T>(data: Any) -> Result<Ok, Error> |
1075 | 0 | where |
1076 | 0 | T: serde::ser::SerializeMap, |
1077 | 0 | { |
1078 | 0 | unsafe { data.take::<T>().end().unsafe_map(Ok::new).map_err(erase) } |
1079 | 0 | } Unexecuted instantiation: <erased_serde::ser::Map>::new::end::<erased_serde::ser::Map> Unexecuted instantiation: <erased_serde::ser::Map>::new::end::<serde_json::ser::Compound<&mut alloc::vec::Vec<u8>, serde_json::ser::CompactFormatter>> Unexecuted instantiation: <erased_serde::ser::Map>::new::end::<serde::ser::impossible::Impossible<alloc::string::String, serde_json::error::Error>> Unexecuted instantiation: <erased_serde::ser::Map>::new::end::<serde::ser::impossible::Impossible<(), serde_json::error::Error>> Unexecuted instantiation: <erased_serde::ser::Map>::new::end::<serde_json::value::ser::SerializeMap> Unexecuted instantiation: <erased_serde::ser::Map>::new::end::<_> |
1080 | 0 | end::<T> |
1081 | 0 | }, |
1082 | 0 | lifetime: PhantomData, |
1083 | 0 | } |
1084 | 0 | } Unexecuted instantiation: <erased_serde::ser::Map>::new::<erased_serde::ser::Map> Unexecuted instantiation: <erased_serde::ser::Map>::new::<serde_json::ser::Compound<&mut alloc::vec::Vec<u8>, serde_json::ser::CompactFormatter>> Unexecuted instantiation: <erased_serde::ser::Map>::new::<serde::ser::impossible::Impossible<alloc::string::String, serde_json::error::Error>> Unexecuted instantiation: <erased_serde::ser::Map>::new::<serde::ser::impossible::Impossible<(), serde_json::error::Error>> Unexecuted instantiation: <erased_serde::ser::Map>::new::<serde_json::value::ser::SerializeMap> Unexecuted instantiation: <erased_serde::ser::Map>::new::<_> |
1085 | | } |
1086 | | |
1087 | | impl<'a> SerializeMap for Map<'a> { |
1088 | | type Ok = Ok; |
1089 | | type Error = Error; |
1090 | | |
1091 | 0 | fn serialize_key<T>(&mut self, key: &T) -> Result<(), Error> |
1092 | 0 | where |
1093 | 0 | T: ?Sized + serde::Serialize, |
1094 | 0 | { |
1095 | 0 | unsafe { (self.serialize_key)(&mut self.data, &key) } |
1096 | 0 | } Unexecuted instantiation: <erased_serde::ser::Map as serde::ser::SerializeMap>::serialize_key::<dyn erased_serde::ser::Serialize> Unexecuted instantiation: <erased_serde::ser::Map as serde::ser::SerializeMap>::serialize_key::<_> |
1097 | | |
1098 | 0 | fn serialize_value<T>(&mut self, value: &T) -> Result<(), Error> |
1099 | 0 | where |
1100 | 0 | T: ?Sized + serde::Serialize, |
1101 | 0 | { |
1102 | 0 | unsafe { (self.serialize_value)(&mut self.data, &value) } |
1103 | 0 | } Unexecuted instantiation: <erased_serde::ser::Map as serde::ser::SerializeMap>::serialize_value::<dyn erased_serde::ser::Serialize> Unexecuted instantiation: <erased_serde::ser::Map as serde::ser::SerializeMap>::serialize_value::<_> |
1104 | | |
1105 | 0 | fn serialize_entry<K, V>(&mut self, key: &K, value: &V) -> Result<(), Error> |
1106 | 0 | where |
1107 | 0 | K: ?Sized + serde::Serialize, |
1108 | 0 | V: ?Sized + serde::Serialize, |
1109 | 0 | { |
1110 | 0 | unsafe { (self.serialize_entry)(&mut self.data, &key, &value) } |
1111 | 0 | } Unexecuted instantiation: <erased_serde::ser::Map as serde::ser::SerializeMap>::serialize_entry::<dyn erased_serde::ser::Serialize, dyn erased_serde::ser::Serialize> Unexecuted instantiation: <erased_serde::ser::Map as serde::ser::SerializeMap>::serialize_entry::<starlark::values::layout::typed::ValueTyped<starlark::values::types::string::str_type::StarlarkStr>, starlark::values::layout::value::FrozenValue> Unexecuted instantiation: <erased_serde::ser::Map as serde::ser::SerializeMap>::serialize_entry::<starlark::values::layout::typed::ValueTyped<starlark::values::types::string::str_type::StarlarkStr>, starlark::values::layout::value::Value> Unexecuted instantiation: <erased_serde::ser::Map as serde::ser::SerializeMap>::serialize_entry::<&starlark::values::layout::value::Value, &starlark::values::layout::value::Value> Unexecuted instantiation: <erased_serde::ser::Map as serde::ser::SerializeMap>::serialize_entry::<&str, starlark::values::layout::value::FrozenValue> Unexecuted instantiation: <erased_serde::ser::Map as serde::ser::SerializeMap>::serialize_entry::<&str, starlark::values::layout::value::Value> Unexecuted instantiation: <erased_serde::ser::Map as serde::ser::SerializeMap>::serialize_entry::<_, _> |
1112 | | |
1113 | 0 | fn end(self) -> Result<Ok, Error> { |
1114 | 0 | unsafe { (self.end)(self.data) } |
1115 | 0 | } |
1116 | | } |
1117 | | |
1118 | | pub struct Struct<'a> { |
1119 | | data: Any, |
1120 | | serialize_field: unsafe fn(&mut Any, &'static str, &dyn Serialize) -> Result<(), Error>, |
1121 | | end: unsafe fn(Any) -> Result<Ok, Error>, |
1122 | | lifetime: PhantomData<&'a dyn Serializer>, |
1123 | | } |
1124 | | |
1125 | | impl<'a> Struct<'a> { |
1126 | 0 | unsafe fn new<T>(data: T) -> Self |
1127 | 0 | where |
1128 | 0 | T: serde::ser::SerializeStruct, |
1129 | 0 | { |
1130 | 0 | Struct { |
1131 | 0 | data: unsafe { Any::new(data) }, |
1132 | 0 | serialize_field: { |
1133 | 0 | unsafe fn serialize_field<T>( |
1134 | 0 | data: &mut Any, |
1135 | 0 | k: &'static str, |
1136 | 0 | v: &dyn Serialize, |
1137 | 0 | ) -> Result<(), Error> |
1138 | 0 | where |
1139 | 0 | T: serde::ser::SerializeStruct, |
1140 | 0 | { |
1141 | 0 | unsafe { data.view::<T>().serialize_field(k, v).map_err(erase) } |
1142 | 0 | } Unexecuted instantiation: <erased_serde::ser::Struct>::new::serialize_field::<erased_serde::ser::Struct> Unexecuted instantiation: <erased_serde::ser::Struct>::new::serialize_field::<serde_json::ser::Compound<&mut alloc::vec::Vec<u8>, serde_json::ser::CompactFormatter>> Unexecuted instantiation: <erased_serde::ser::Struct>::new::serialize_field::<serde::ser::impossible::Impossible<alloc::string::String, serde_json::error::Error>> Unexecuted instantiation: <erased_serde::ser::Struct>::new::serialize_field::<serde::ser::impossible::Impossible<(), serde_json::error::Error>> Unexecuted instantiation: <erased_serde::ser::Struct>::new::serialize_field::<serde_json::value::ser::SerializeMap> Unexecuted instantiation: <erased_serde::ser::Struct>::new::serialize_field::<_> |
1143 | 0 | serialize_field::<T> |
1144 | 0 | }, |
1145 | 0 | end: { |
1146 | 0 | unsafe fn end<T>(data: Any) -> Result<Ok, Error> |
1147 | 0 | where |
1148 | 0 | T: serde::ser::SerializeStruct, |
1149 | 0 | { |
1150 | 0 | unsafe { data.take::<T>().end().unsafe_map(Ok::new).map_err(erase) } |
1151 | 0 | } Unexecuted instantiation: <erased_serde::ser::Struct>::new::end::<erased_serde::ser::Struct> Unexecuted instantiation: <erased_serde::ser::Struct>::new::end::<serde_json::ser::Compound<&mut alloc::vec::Vec<u8>, serde_json::ser::CompactFormatter>> Unexecuted instantiation: <erased_serde::ser::Struct>::new::end::<serde::ser::impossible::Impossible<alloc::string::String, serde_json::error::Error>> Unexecuted instantiation: <erased_serde::ser::Struct>::new::end::<serde::ser::impossible::Impossible<(), serde_json::error::Error>> Unexecuted instantiation: <erased_serde::ser::Struct>::new::end::<serde_json::value::ser::SerializeMap> Unexecuted instantiation: <erased_serde::ser::Struct>::new::end::<_> |
1152 | 0 | end::<T> |
1153 | 0 | }, |
1154 | 0 | lifetime: PhantomData, |
1155 | 0 | } |
1156 | 0 | } Unexecuted instantiation: <erased_serde::ser::Struct>::new::<erased_serde::ser::Struct> Unexecuted instantiation: <erased_serde::ser::Struct>::new::<serde_json::ser::Compound<&mut alloc::vec::Vec<u8>, serde_json::ser::CompactFormatter>> Unexecuted instantiation: <erased_serde::ser::Struct>::new::<serde::ser::impossible::Impossible<alloc::string::String, serde_json::error::Error>> Unexecuted instantiation: <erased_serde::ser::Struct>::new::<serde::ser::impossible::Impossible<(), serde_json::error::Error>> Unexecuted instantiation: <erased_serde::ser::Struct>::new::<serde_json::value::ser::SerializeMap> Unexecuted instantiation: <erased_serde::ser::Struct>::new::<_> |
1157 | | } |
1158 | | |
1159 | | impl<'a> SerializeStruct for Struct<'a> { |
1160 | | type Ok = Ok; |
1161 | | type Error = Error; |
1162 | | |
1163 | 0 | fn serialize_field<T>(&mut self, name: &'static str, field: &T) -> Result<(), Error> |
1164 | 0 | where |
1165 | 0 | T: ?Sized + serde::Serialize, |
1166 | 0 | { |
1167 | 0 | unsafe { (self.serialize_field)(&mut self.data, name, &field) } |
1168 | 0 | } Unexecuted instantiation: <erased_serde::ser::Struct as serde::ser::SerializeStruct>::serialize_field::<dyn erased_serde::ser::Serialize> Unexecuted instantiation: <erased_serde::ser::Struct as serde::ser::SerializeStruct>::serialize_field::<_> |
1169 | | |
1170 | 0 | fn end(self) -> Result<Ok, Error> { |
1171 | 0 | unsafe { (self.end)(self.data) } |
1172 | 0 | } |
1173 | | } |
1174 | | |
1175 | | pub struct StructVariant<'a> { |
1176 | | data: Any, |
1177 | | serialize_field: unsafe fn(&mut Any, &'static str, &dyn Serialize) -> Result<(), Error>, |
1178 | | end: unsafe fn(Any) -> Result<Ok, Error>, |
1179 | | lifetime: PhantomData<&'a dyn Serializer>, |
1180 | | } |
1181 | | |
1182 | | impl<'a> StructVariant<'a> { |
1183 | 0 | unsafe fn new<T>(data: T) -> Self |
1184 | 0 | where |
1185 | 0 | T: serde::ser::SerializeStructVariant, |
1186 | 0 | { |
1187 | 0 | StructVariant { |
1188 | 0 | data: unsafe { Any::new(data) }, |
1189 | 0 | serialize_field: { |
1190 | 0 | unsafe fn serialize_field<T>( |
1191 | 0 | data: &mut Any, |
1192 | 0 | k: &'static str, |
1193 | 0 | v: &dyn Serialize, |
1194 | 0 | ) -> Result<(), Error> |
1195 | 0 | where |
1196 | 0 | T: serde::ser::SerializeStructVariant, |
1197 | 0 | { |
1198 | 0 | unsafe { data.view::<T>().serialize_field(k, v).map_err(erase) } |
1199 | 0 | } Unexecuted instantiation: <erased_serde::ser::StructVariant>::new::serialize_field::<erased_serde::ser::StructVariant> Unexecuted instantiation: <erased_serde::ser::StructVariant>::new::serialize_field::<serde_json::ser::Compound<&mut alloc::vec::Vec<u8>, serde_json::ser::CompactFormatter>> Unexecuted instantiation: <erased_serde::ser::StructVariant>::new::serialize_field::<serde::ser::impossible::Impossible<alloc::string::String, serde_json::error::Error>> Unexecuted instantiation: <erased_serde::ser::StructVariant>::new::serialize_field::<serde::ser::impossible::Impossible<(), serde_json::error::Error>> Unexecuted instantiation: <erased_serde::ser::StructVariant>::new::serialize_field::<serde_json::value::ser::SerializeStructVariant> Unexecuted instantiation: <erased_serde::ser::StructVariant>::new::serialize_field::<_> |
1200 | 0 | serialize_field::<T> |
1201 | 0 | }, |
1202 | 0 | end: { |
1203 | 0 | unsafe fn end<T>(data: Any) -> Result<Ok, Error> |
1204 | 0 | where |
1205 | 0 | T: serde::ser::SerializeStructVariant, |
1206 | 0 | { |
1207 | 0 | unsafe { data.take::<T>().end().unsafe_map(Ok::new).map_err(erase) } |
1208 | 0 | } Unexecuted instantiation: <erased_serde::ser::StructVariant>::new::end::<erased_serde::ser::StructVariant> Unexecuted instantiation: <erased_serde::ser::StructVariant>::new::end::<serde_json::ser::Compound<&mut alloc::vec::Vec<u8>, serde_json::ser::CompactFormatter>> Unexecuted instantiation: <erased_serde::ser::StructVariant>::new::end::<serde::ser::impossible::Impossible<alloc::string::String, serde_json::error::Error>> Unexecuted instantiation: <erased_serde::ser::StructVariant>::new::end::<serde::ser::impossible::Impossible<(), serde_json::error::Error>> Unexecuted instantiation: <erased_serde::ser::StructVariant>::new::end::<serde_json::value::ser::SerializeStructVariant> Unexecuted instantiation: <erased_serde::ser::StructVariant>::new::end::<_> |
1209 | 0 | end::<T> |
1210 | 0 | }, |
1211 | 0 | lifetime: PhantomData, |
1212 | 0 | } |
1213 | 0 | } Unexecuted instantiation: <erased_serde::ser::StructVariant>::new::<erased_serde::ser::StructVariant> Unexecuted instantiation: <erased_serde::ser::StructVariant>::new::<serde_json::ser::Compound<&mut alloc::vec::Vec<u8>, serde_json::ser::CompactFormatter>> Unexecuted instantiation: <erased_serde::ser::StructVariant>::new::<serde::ser::impossible::Impossible<alloc::string::String, serde_json::error::Error>> Unexecuted instantiation: <erased_serde::ser::StructVariant>::new::<serde::ser::impossible::Impossible<(), serde_json::error::Error>> Unexecuted instantiation: <erased_serde::ser::StructVariant>::new::<serde_json::value::ser::SerializeStructVariant> Unexecuted instantiation: <erased_serde::ser::StructVariant>::new::<_> |
1214 | | } |
1215 | | |
1216 | | impl<'a> SerializeStructVariant for StructVariant<'a> { |
1217 | | type Ok = Ok; |
1218 | | type Error = Error; |
1219 | | |
1220 | 0 | fn serialize_field<T>(&mut self, name: &'static str, field: &T) -> Result<(), Error> |
1221 | 0 | where |
1222 | 0 | T: ?Sized + serde::Serialize, |
1223 | 0 | { |
1224 | 0 | unsafe { (self.serialize_field)(&mut self.data, name, &field) } |
1225 | 0 | } Unexecuted instantiation: <erased_serde::ser::StructVariant as serde::ser::SerializeStructVariant>::serialize_field::<dyn erased_serde::ser::Serialize> Unexecuted instantiation: <erased_serde::ser::StructVariant as serde::ser::SerializeStructVariant>::serialize_field::<_> |
1226 | | |
1227 | 0 | fn end(self) -> Result<Ok, Error> { |
1228 | 0 | unsafe { (self.end)(self.data) } |
1229 | 0 | } |
1230 | | } |
1231 | | |
1232 | | // IMPL ERASED SERDE FOR ERASED SERDE ////////////////////////////////////////// |
1233 | | |
1234 | | macro_rules! deref_erased_serializer { |
1235 | | ($($imp:tt)+) => { |
1236 | | impl $($imp)+ { |
1237 | 0 | fn erased_serialize_bool(&mut self, v: bool) -> Result<Ok, Error> { |
1238 | 0 | (**self).erased_serialize_bool(v) |
1239 | 0 | } Unexecuted instantiation: <alloc::boxed::Box<dyn erased_serde::ser::Serializer> as erased_serde::ser::Serializer>::erased_serialize_bool Unexecuted instantiation: <alloc::boxed::Box<dyn erased_serde::ser::Serializer + core::marker::Send> as erased_serde::ser::Serializer>::erased_serialize_bool Unexecuted instantiation: <alloc::boxed::Box<dyn erased_serde::ser::Serializer + core::marker::Sync> as erased_serde::ser::Serializer>::erased_serialize_bool Unexecuted instantiation: <alloc::boxed::Box<dyn erased_serde::ser::Serializer + core::marker::Send + core::marker::Sync> as erased_serde::ser::Serializer>::erased_serialize_bool Unexecuted instantiation: <&mut _ as erased_serde::ser::Serializer>::erased_serialize_bool |
1240 | | |
1241 | 0 | fn erased_serialize_i8(&mut self, v: i8) -> Result<Ok, Error> { |
1242 | 0 | (**self).erased_serialize_i8(v) |
1243 | 0 | } Unexecuted instantiation: <alloc::boxed::Box<dyn erased_serde::ser::Serializer> as erased_serde::ser::Serializer>::erased_serialize_i8 Unexecuted instantiation: <alloc::boxed::Box<dyn erased_serde::ser::Serializer + core::marker::Send> as erased_serde::ser::Serializer>::erased_serialize_i8 Unexecuted instantiation: <alloc::boxed::Box<dyn erased_serde::ser::Serializer + core::marker::Sync> as erased_serde::ser::Serializer>::erased_serialize_i8 Unexecuted instantiation: <alloc::boxed::Box<dyn erased_serde::ser::Serializer + core::marker::Send + core::marker::Sync> as erased_serde::ser::Serializer>::erased_serialize_i8 Unexecuted instantiation: <&mut _ as erased_serde::ser::Serializer>::erased_serialize_i8 |
1244 | | |
1245 | 0 | fn erased_serialize_i16(&mut self, v: i16) -> Result<Ok, Error> { |
1246 | 0 | (**self).erased_serialize_i16(v) |
1247 | 0 | } Unexecuted instantiation: <alloc::boxed::Box<dyn erased_serde::ser::Serializer> as erased_serde::ser::Serializer>::erased_serialize_i16 Unexecuted instantiation: <alloc::boxed::Box<dyn erased_serde::ser::Serializer + core::marker::Send> as erased_serde::ser::Serializer>::erased_serialize_i16 Unexecuted instantiation: <alloc::boxed::Box<dyn erased_serde::ser::Serializer + core::marker::Sync> as erased_serde::ser::Serializer>::erased_serialize_i16 Unexecuted instantiation: <alloc::boxed::Box<dyn erased_serde::ser::Serializer + core::marker::Send + core::marker::Sync> as erased_serde::ser::Serializer>::erased_serialize_i16 Unexecuted instantiation: <&mut _ as erased_serde::ser::Serializer>::erased_serialize_i16 |
1248 | | |
1249 | 0 | fn erased_serialize_i32(&mut self, v: i32) -> Result<Ok, Error> { |
1250 | 0 | (**self).erased_serialize_i32(v) |
1251 | 0 | } Unexecuted instantiation: <alloc::boxed::Box<dyn erased_serde::ser::Serializer> as erased_serde::ser::Serializer>::erased_serialize_i32 Unexecuted instantiation: <alloc::boxed::Box<dyn erased_serde::ser::Serializer + core::marker::Send> as erased_serde::ser::Serializer>::erased_serialize_i32 Unexecuted instantiation: <alloc::boxed::Box<dyn erased_serde::ser::Serializer + core::marker::Sync> as erased_serde::ser::Serializer>::erased_serialize_i32 Unexecuted instantiation: <alloc::boxed::Box<dyn erased_serde::ser::Serializer + core::marker::Send + core::marker::Sync> as erased_serde::ser::Serializer>::erased_serialize_i32 Unexecuted instantiation: <&mut _ as erased_serde::ser::Serializer>::erased_serialize_i32 |
1252 | | |
1253 | 0 | fn erased_serialize_i64(&mut self, v: i64) -> Result<Ok, Error> { |
1254 | 0 | (**self).erased_serialize_i64(v) |
1255 | 0 | } Unexecuted instantiation: <alloc::boxed::Box<dyn erased_serde::ser::Serializer> as erased_serde::ser::Serializer>::erased_serialize_i64 Unexecuted instantiation: <alloc::boxed::Box<dyn erased_serde::ser::Serializer + core::marker::Send> as erased_serde::ser::Serializer>::erased_serialize_i64 Unexecuted instantiation: <alloc::boxed::Box<dyn erased_serde::ser::Serializer + core::marker::Sync> as erased_serde::ser::Serializer>::erased_serialize_i64 Unexecuted instantiation: <alloc::boxed::Box<dyn erased_serde::ser::Serializer + core::marker::Send + core::marker::Sync> as erased_serde::ser::Serializer>::erased_serialize_i64 Unexecuted instantiation: <&mut _ as erased_serde::ser::Serializer>::erased_serialize_i64 |
1256 | | |
1257 | 0 | fn erased_serialize_i128(&mut self, v: i128) -> Result<Ok, Error> { |
1258 | 0 | (**self).erased_serialize_i128(v) |
1259 | 0 | } Unexecuted instantiation: <alloc::boxed::Box<dyn erased_serde::ser::Serializer> as erased_serde::ser::Serializer>::erased_serialize_i128 Unexecuted instantiation: <alloc::boxed::Box<dyn erased_serde::ser::Serializer + core::marker::Send> as erased_serde::ser::Serializer>::erased_serialize_i128 Unexecuted instantiation: <alloc::boxed::Box<dyn erased_serde::ser::Serializer + core::marker::Sync> as erased_serde::ser::Serializer>::erased_serialize_i128 Unexecuted instantiation: <alloc::boxed::Box<dyn erased_serde::ser::Serializer + core::marker::Send + core::marker::Sync> as erased_serde::ser::Serializer>::erased_serialize_i128 Unexecuted instantiation: <&mut _ as erased_serde::ser::Serializer>::erased_serialize_i128 |
1260 | | |
1261 | 0 | fn erased_serialize_u8(&mut self, v: u8) -> Result<Ok, Error> { |
1262 | 0 | (**self).erased_serialize_u8(v) |
1263 | 0 | } Unexecuted instantiation: <alloc::boxed::Box<dyn erased_serde::ser::Serializer> as erased_serde::ser::Serializer>::erased_serialize_u8 Unexecuted instantiation: <alloc::boxed::Box<dyn erased_serde::ser::Serializer + core::marker::Send> as erased_serde::ser::Serializer>::erased_serialize_u8 Unexecuted instantiation: <alloc::boxed::Box<dyn erased_serde::ser::Serializer + core::marker::Sync> as erased_serde::ser::Serializer>::erased_serialize_u8 Unexecuted instantiation: <alloc::boxed::Box<dyn erased_serde::ser::Serializer + core::marker::Send + core::marker::Sync> as erased_serde::ser::Serializer>::erased_serialize_u8 Unexecuted instantiation: <&mut _ as erased_serde::ser::Serializer>::erased_serialize_u8 |
1264 | | |
1265 | 0 | fn erased_serialize_u16(&mut self, v: u16) -> Result<Ok, Error> { |
1266 | 0 | (**self).erased_serialize_u16(v) |
1267 | 0 | } Unexecuted instantiation: <alloc::boxed::Box<dyn erased_serde::ser::Serializer> as erased_serde::ser::Serializer>::erased_serialize_u16 Unexecuted instantiation: <alloc::boxed::Box<dyn erased_serde::ser::Serializer + core::marker::Send> as erased_serde::ser::Serializer>::erased_serialize_u16 Unexecuted instantiation: <alloc::boxed::Box<dyn erased_serde::ser::Serializer + core::marker::Sync> as erased_serde::ser::Serializer>::erased_serialize_u16 Unexecuted instantiation: <alloc::boxed::Box<dyn erased_serde::ser::Serializer + core::marker::Send + core::marker::Sync> as erased_serde::ser::Serializer>::erased_serialize_u16 Unexecuted instantiation: <&mut _ as erased_serde::ser::Serializer>::erased_serialize_u16 |
1268 | | |
1269 | 0 | fn erased_serialize_u32(&mut self, v: u32) -> Result<Ok, Error> { |
1270 | 0 | (**self).erased_serialize_u32(v) |
1271 | 0 | } Unexecuted instantiation: <alloc::boxed::Box<dyn erased_serde::ser::Serializer> as erased_serde::ser::Serializer>::erased_serialize_u32 Unexecuted instantiation: <alloc::boxed::Box<dyn erased_serde::ser::Serializer + core::marker::Send> as erased_serde::ser::Serializer>::erased_serialize_u32 Unexecuted instantiation: <alloc::boxed::Box<dyn erased_serde::ser::Serializer + core::marker::Sync> as erased_serde::ser::Serializer>::erased_serialize_u32 Unexecuted instantiation: <alloc::boxed::Box<dyn erased_serde::ser::Serializer + core::marker::Send + core::marker::Sync> as erased_serde::ser::Serializer>::erased_serialize_u32 Unexecuted instantiation: <&mut _ as erased_serde::ser::Serializer>::erased_serialize_u32 |
1272 | | |
1273 | 0 | fn erased_serialize_u64(&mut self, v: u64) -> Result<Ok, Error> { |
1274 | 0 | (**self).erased_serialize_u64(v) |
1275 | 0 | } Unexecuted instantiation: <alloc::boxed::Box<dyn erased_serde::ser::Serializer> as erased_serde::ser::Serializer>::erased_serialize_u64 Unexecuted instantiation: <alloc::boxed::Box<dyn erased_serde::ser::Serializer + core::marker::Send> as erased_serde::ser::Serializer>::erased_serialize_u64 Unexecuted instantiation: <alloc::boxed::Box<dyn erased_serde::ser::Serializer + core::marker::Sync> as erased_serde::ser::Serializer>::erased_serialize_u64 Unexecuted instantiation: <alloc::boxed::Box<dyn erased_serde::ser::Serializer + core::marker::Send + core::marker::Sync> as erased_serde::ser::Serializer>::erased_serialize_u64 Unexecuted instantiation: <&mut _ as erased_serde::ser::Serializer>::erased_serialize_u64 |
1276 | | |
1277 | 0 | fn erased_serialize_u128(&mut self, v: u128) -> Result<Ok, Error> { |
1278 | 0 | (**self).erased_serialize_u128(v) |
1279 | 0 | } Unexecuted instantiation: <alloc::boxed::Box<dyn erased_serde::ser::Serializer> as erased_serde::ser::Serializer>::erased_serialize_u128 Unexecuted instantiation: <alloc::boxed::Box<dyn erased_serde::ser::Serializer + core::marker::Send> as erased_serde::ser::Serializer>::erased_serialize_u128 Unexecuted instantiation: <alloc::boxed::Box<dyn erased_serde::ser::Serializer + core::marker::Sync> as erased_serde::ser::Serializer>::erased_serialize_u128 Unexecuted instantiation: <alloc::boxed::Box<dyn erased_serde::ser::Serializer + core::marker::Send + core::marker::Sync> as erased_serde::ser::Serializer>::erased_serialize_u128 Unexecuted instantiation: <&mut _ as erased_serde::ser::Serializer>::erased_serialize_u128 |
1280 | | |
1281 | 0 | fn erased_serialize_f32(&mut self, v: f32) -> Result<Ok, Error> { |
1282 | 0 | (**self).erased_serialize_f32(v) |
1283 | 0 | } Unexecuted instantiation: <alloc::boxed::Box<dyn erased_serde::ser::Serializer> as erased_serde::ser::Serializer>::erased_serialize_f32 Unexecuted instantiation: <alloc::boxed::Box<dyn erased_serde::ser::Serializer + core::marker::Send> as erased_serde::ser::Serializer>::erased_serialize_f32 Unexecuted instantiation: <alloc::boxed::Box<dyn erased_serde::ser::Serializer + core::marker::Sync> as erased_serde::ser::Serializer>::erased_serialize_f32 Unexecuted instantiation: <alloc::boxed::Box<dyn erased_serde::ser::Serializer + core::marker::Send + core::marker::Sync> as erased_serde::ser::Serializer>::erased_serialize_f32 Unexecuted instantiation: <&mut _ as erased_serde::ser::Serializer>::erased_serialize_f32 |
1284 | | |
1285 | 0 | fn erased_serialize_f64(&mut self, v: f64) -> Result<Ok, Error> { |
1286 | 0 | (**self).erased_serialize_f64(v) |
1287 | 0 | } Unexecuted instantiation: <alloc::boxed::Box<dyn erased_serde::ser::Serializer> as erased_serde::ser::Serializer>::erased_serialize_f64 Unexecuted instantiation: <alloc::boxed::Box<dyn erased_serde::ser::Serializer + core::marker::Send> as erased_serde::ser::Serializer>::erased_serialize_f64 Unexecuted instantiation: <alloc::boxed::Box<dyn erased_serde::ser::Serializer + core::marker::Sync> as erased_serde::ser::Serializer>::erased_serialize_f64 Unexecuted instantiation: <alloc::boxed::Box<dyn erased_serde::ser::Serializer + core::marker::Send + core::marker::Sync> as erased_serde::ser::Serializer>::erased_serialize_f64 Unexecuted instantiation: <&mut _ as erased_serde::ser::Serializer>::erased_serialize_f64 |
1288 | | |
1289 | 0 | fn erased_serialize_char(&mut self, v: char) -> Result<Ok, Error> { |
1290 | 0 | (**self).erased_serialize_char(v) |
1291 | 0 | } Unexecuted instantiation: <alloc::boxed::Box<dyn erased_serde::ser::Serializer> as erased_serde::ser::Serializer>::erased_serialize_char Unexecuted instantiation: <alloc::boxed::Box<dyn erased_serde::ser::Serializer + core::marker::Send> as erased_serde::ser::Serializer>::erased_serialize_char Unexecuted instantiation: <alloc::boxed::Box<dyn erased_serde::ser::Serializer + core::marker::Sync> as erased_serde::ser::Serializer>::erased_serialize_char Unexecuted instantiation: <alloc::boxed::Box<dyn erased_serde::ser::Serializer + core::marker::Send + core::marker::Sync> as erased_serde::ser::Serializer>::erased_serialize_char Unexecuted instantiation: <&mut _ as erased_serde::ser::Serializer>::erased_serialize_char |
1292 | | |
1293 | 0 | fn erased_serialize_str(&mut self, v: &str) -> Result<Ok, Error> { |
1294 | 0 | (**self).erased_serialize_str(v) |
1295 | 0 | } Unexecuted instantiation: <alloc::boxed::Box<dyn erased_serde::ser::Serializer> as erased_serde::ser::Serializer>::erased_serialize_str Unexecuted instantiation: <alloc::boxed::Box<dyn erased_serde::ser::Serializer + core::marker::Send> as erased_serde::ser::Serializer>::erased_serialize_str Unexecuted instantiation: <alloc::boxed::Box<dyn erased_serde::ser::Serializer + core::marker::Sync> as erased_serde::ser::Serializer>::erased_serialize_str Unexecuted instantiation: <alloc::boxed::Box<dyn erased_serde::ser::Serializer + core::marker::Send + core::marker::Sync> as erased_serde::ser::Serializer>::erased_serialize_str Unexecuted instantiation: <&mut _ as erased_serde::ser::Serializer>::erased_serialize_str |
1296 | | |
1297 | 0 | fn erased_serialize_bytes(&mut self, v: &[u8]) -> Result<Ok, Error> { |
1298 | 0 | (**self).erased_serialize_bytes(v) |
1299 | 0 | } Unexecuted instantiation: <alloc::boxed::Box<dyn erased_serde::ser::Serializer> as erased_serde::ser::Serializer>::erased_serialize_bytes Unexecuted instantiation: <alloc::boxed::Box<dyn erased_serde::ser::Serializer + core::marker::Send> as erased_serde::ser::Serializer>::erased_serialize_bytes Unexecuted instantiation: <alloc::boxed::Box<dyn erased_serde::ser::Serializer + core::marker::Sync> as erased_serde::ser::Serializer>::erased_serialize_bytes Unexecuted instantiation: <alloc::boxed::Box<dyn erased_serde::ser::Serializer + core::marker::Send + core::marker::Sync> as erased_serde::ser::Serializer>::erased_serialize_bytes Unexecuted instantiation: <&mut _ as erased_serde::ser::Serializer>::erased_serialize_bytes |
1300 | | |
1301 | 0 | fn erased_serialize_none(&mut self) -> Result<Ok, Error> { |
1302 | 0 | (**self).erased_serialize_none() |
1303 | 0 | } Unexecuted instantiation: <alloc::boxed::Box<dyn erased_serde::ser::Serializer> as erased_serde::ser::Serializer>::erased_serialize_none Unexecuted instantiation: <alloc::boxed::Box<dyn erased_serde::ser::Serializer + core::marker::Send> as erased_serde::ser::Serializer>::erased_serialize_none Unexecuted instantiation: <alloc::boxed::Box<dyn erased_serde::ser::Serializer + core::marker::Sync> as erased_serde::ser::Serializer>::erased_serialize_none Unexecuted instantiation: <alloc::boxed::Box<dyn erased_serde::ser::Serializer + core::marker::Send + core::marker::Sync> as erased_serde::ser::Serializer>::erased_serialize_none Unexecuted instantiation: <&mut _ as erased_serde::ser::Serializer>::erased_serialize_none |
1304 | | |
1305 | 0 | fn erased_serialize_some(&mut self, v: &dyn Serialize) -> Result<Ok, Error> { |
1306 | 0 | (**self).erased_serialize_some(v) |
1307 | 0 | } Unexecuted instantiation: <alloc::boxed::Box<dyn erased_serde::ser::Serializer> as erased_serde::ser::Serializer>::erased_serialize_some Unexecuted instantiation: <alloc::boxed::Box<dyn erased_serde::ser::Serializer + core::marker::Send> as erased_serde::ser::Serializer>::erased_serialize_some Unexecuted instantiation: <alloc::boxed::Box<dyn erased_serde::ser::Serializer + core::marker::Sync> as erased_serde::ser::Serializer>::erased_serialize_some Unexecuted instantiation: <alloc::boxed::Box<dyn erased_serde::ser::Serializer + core::marker::Send + core::marker::Sync> as erased_serde::ser::Serializer>::erased_serialize_some Unexecuted instantiation: <&mut _ as erased_serde::ser::Serializer>::erased_serialize_some |
1308 | | |
1309 | 0 | fn erased_serialize_unit(&mut self) -> Result<Ok, Error> { |
1310 | 0 | (**self).erased_serialize_unit() |
1311 | 0 | } Unexecuted instantiation: <alloc::boxed::Box<dyn erased_serde::ser::Serializer> as erased_serde::ser::Serializer>::erased_serialize_unit Unexecuted instantiation: <alloc::boxed::Box<dyn erased_serde::ser::Serializer + core::marker::Send> as erased_serde::ser::Serializer>::erased_serialize_unit Unexecuted instantiation: <alloc::boxed::Box<dyn erased_serde::ser::Serializer + core::marker::Sync> as erased_serde::ser::Serializer>::erased_serialize_unit Unexecuted instantiation: <alloc::boxed::Box<dyn erased_serde::ser::Serializer + core::marker::Send + core::marker::Sync> as erased_serde::ser::Serializer>::erased_serialize_unit Unexecuted instantiation: <&mut _ as erased_serde::ser::Serializer>::erased_serialize_unit |
1312 | | |
1313 | 0 | fn erased_serialize_unit_struct(&mut self, name: &'static str) -> Result<Ok, Error> { |
1314 | 0 | (**self).erased_serialize_unit_struct(name) |
1315 | 0 | } Unexecuted instantiation: <alloc::boxed::Box<dyn erased_serde::ser::Serializer> as erased_serde::ser::Serializer>::erased_serialize_unit_struct Unexecuted instantiation: <alloc::boxed::Box<dyn erased_serde::ser::Serializer + core::marker::Send> as erased_serde::ser::Serializer>::erased_serialize_unit_struct Unexecuted instantiation: <alloc::boxed::Box<dyn erased_serde::ser::Serializer + core::marker::Sync> as erased_serde::ser::Serializer>::erased_serialize_unit_struct Unexecuted instantiation: <alloc::boxed::Box<dyn erased_serde::ser::Serializer + core::marker::Send + core::marker::Sync> as erased_serde::ser::Serializer>::erased_serialize_unit_struct Unexecuted instantiation: <&mut _ as erased_serde::ser::Serializer>::erased_serialize_unit_struct |
1316 | | |
1317 | 0 | fn erased_serialize_unit_variant(&mut self, name: &'static str, variant_index: u32, variant: &'static str) -> Result<Ok, Error> { |
1318 | 0 | (**self).erased_serialize_unit_variant(name, variant_index, variant) |
1319 | 0 | } Unexecuted instantiation: <alloc::boxed::Box<dyn erased_serde::ser::Serializer> as erased_serde::ser::Serializer>::erased_serialize_unit_variant Unexecuted instantiation: <alloc::boxed::Box<dyn erased_serde::ser::Serializer + core::marker::Send> as erased_serde::ser::Serializer>::erased_serialize_unit_variant Unexecuted instantiation: <alloc::boxed::Box<dyn erased_serde::ser::Serializer + core::marker::Sync> as erased_serde::ser::Serializer>::erased_serialize_unit_variant Unexecuted instantiation: <alloc::boxed::Box<dyn erased_serde::ser::Serializer + core::marker::Send + core::marker::Sync> as erased_serde::ser::Serializer>::erased_serialize_unit_variant Unexecuted instantiation: <&mut _ as erased_serde::ser::Serializer>::erased_serialize_unit_variant |
1320 | | |
1321 | 0 | fn erased_serialize_newtype_struct(&mut self, name: &'static str, v: &dyn Serialize) -> Result<Ok, Error> { |
1322 | 0 | (**self).erased_serialize_newtype_struct(name, v) |
1323 | 0 | } Unexecuted instantiation: <alloc::boxed::Box<dyn erased_serde::ser::Serializer> as erased_serde::ser::Serializer>::erased_serialize_newtype_struct Unexecuted instantiation: <alloc::boxed::Box<dyn erased_serde::ser::Serializer + core::marker::Send> as erased_serde::ser::Serializer>::erased_serialize_newtype_struct Unexecuted instantiation: <alloc::boxed::Box<dyn erased_serde::ser::Serializer + core::marker::Sync> as erased_serde::ser::Serializer>::erased_serialize_newtype_struct Unexecuted instantiation: <alloc::boxed::Box<dyn erased_serde::ser::Serializer + core::marker::Send + core::marker::Sync> as erased_serde::ser::Serializer>::erased_serialize_newtype_struct Unexecuted instantiation: <&mut _ as erased_serde::ser::Serializer>::erased_serialize_newtype_struct |
1324 | | |
1325 | 0 | fn erased_serialize_newtype_variant(&mut self, name: &'static str, variant_index: u32, variant: &'static str, v: &dyn Serialize) -> Result<Ok, Error> { |
1326 | 0 | (**self).erased_serialize_newtype_variant(name, variant_index, variant, v) |
1327 | 0 | } Unexecuted instantiation: <alloc::boxed::Box<dyn erased_serde::ser::Serializer> as erased_serde::ser::Serializer>::erased_serialize_newtype_variant Unexecuted instantiation: <alloc::boxed::Box<dyn erased_serde::ser::Serializer + core::marker::Send> as erased_serde::ser::Serializer>::erased_serialize_newtype_variant Unexecuted instantiation: <alloc::boxed::Box<dyn erased_serde::ser::Serializer + core::marker::Sync> as erased_serde::ser::Serializer>::erased_serialize_newtype_variant Unexecuted instantiation: <alloc::boxed::Box<dyn erased_serde::ser::Serializer + core::marker::Send + core::marker::Sync> as erased_serde::ser::Serializer>::erased_serialize_newtype_variant Unexecuted instantiation: <&mut _ as erased_serde::ser::Serializer>::erased_serialize_newtype_variant |
1328 | | |
1329 | 0 | fn erased_serialize_seq(&mut self, len: Option<usize>) -> Result<Seq, Error> { |
1330 | 0 | (**self).erased_serialize_seq(len) |
1331 | 0 | } Unexecuted instantiation: <alloc::boxed::Box<dyn erased_serde::ser::Serializer> as erased_serde::ser::Serializer>::erased_serialize_seq Unexecuted instantiation: <alloc::boxed::Box<dyn erased_serde::ser::Serializer + core::marker::Send> as erased_serde::ser::Serializer>::erased_serialize_seq Unexecuted instantiation: <alloc::boxed::Box<dyn erased_serde::ser::Serializer + core::marker::Sync> as erased_serde::ser::Serializer>::erased_serialize_seq Unexecuted instantiation: <alloc::boxed::Box<dyn erased_serde::ser::Serializer + core::marker::Send + core::marker::Sync> as erased_serde::ser::Serializer>::erased_serialize_seq Unexecuted instantiation: <&mut _ as erased_serde::ser::Serializer>::erased_serialize_seq |
1332 | | |
1333 | 0 | fn erased_serialize_tuple(&mut self, len: usize) -> Result<Tuple, Error> { |
1334 | 0 | (**self).erased_serialize_tuple(len) |
1335 | 0 | } Unexecuted instantiation: <alloc::boxed::Box<dyn erased_serde::ser::Serializer> as erased_serde::ser::Serializer>::erased_serialize_tuple Unexecuted instantiation: <alloc::boxed::Box<dyn erased_serde::ser::Serializer + core::marker::Send> as erased_serde::ser::Serializer>::erased_serialize_tuple Unexecuted instantiation: <alloc::boxed::Box<dyn erased_serde::ser::Serializer + core::marker::Sync> as erased_serde::ser::Serializer>::erased_serialize_tuple Unexecuted instantiation: <alloc::boxed::Box<dyn erased_serde::ser::Serializer + core::marker::Send + core::marker::Sync> as erased_serde::ser::Serializer>::erased_serialize_tuple Unexecuted instantiation: <&mut _ as erased_serde::ser::Serializer>::erased_serialize_tuple |
1336 | | |
1337 | 0 | fn erased_serialize_tuple_struct(&mut self, name: &'static str, len: usize) -> Result<TupleStruct, Error> { |
1338 | 0 | (**self).erased_serialize_tuple_struct(name, len) |
1339 | 0 | } Unexecuted instantiation: <alloc::boxed::Box<dyn erased_serde::ser::Serializer> as erased_serde::ser::Serializer>::erased_serialize_tuple_struct Unexecuted instantiation: <alloc::boxed::Box<dyn erased_serde::ser::Serializer + core::marker::Send> as erased_serde::ser::Serializer>::erased_serialize_tuple_struct Unexecuted instantiation: <alloc::boxed::Box<dyn erased_serde::ser::Serializer + core::marker::Sync> as erased_serde::ser::Serializer>::erased_serialize_tuple_struct Unexecuted instantiation: <alloc::boxed::Box<dyn erased_serde::ser::Serializer + core::marker::Send + core::marker::Sync> as erased_serde::ser::Serializer>::erased_serialize_tuple_struct Unexecuted instantiation: <&mut _ as erased_serde::ser::Serializer>::erased_serialize_tuple_struct |
1340 | | |
1341 | 0 | fn erased_serialize_tuple_variant(&mut self, name: &'static str, variant_index: u32, variant: &'static str, len: usize) -> Result<TupleVariant, Error> { |
1342 | 0 | (**self).erased_serialize_tuple_variant(name, variant_index, variant, len) |
1343 | 0 | } Unexecuted instantiation: <alloc::boxed::Box<dyn erased_serde::ser::Serializer> as erased_serde::ser::Serializer>::erased_serialize_tuple_variant Unexecuted instantiation: <alloc::boxed::Box<dyn erased_serde::ser::Serializer + core::marker::Send> as erased_serde::ser::Serializer>::erased_serialize_tuple_variant Unexecuted instantiation: <alloc::boxed::Box<dyn erased_serde::ser::Serializer + core::marker::Sync> as erased_serde::ser::Serializer>::erased_serialize_tuple_variant Unexecuted instantiation: <alloc::boxed::Box<dyn erased_serde::ser::Serializer + core::marker::Send + core::marker::Sync> as erased_serde::ser::Serializer>::erased_serialize_tuple_variant Unexecuted instantiation: <&mut _ as erased_serde::ser::Serializer>::erased_serialize_tuple_variant |
1344 | | |
1345 | 0 | fn erased_serialize_map(&mut self, len: Option<usize>) -> Result<Map, Error> { |
1346 | 0 | (**self).erased_serialize_map(len) |
1347 | 0 | } Unexecuted instantiation: <alloc::boxed::Box<dyn erased_serde::ser::Serializer> as erased_serde::ser::Serializer>::erased_serialize_map Unexecuted instantiation: <alloc::boxed::Box<dyn erased_serde::ser::Serializer + core::marker::Send> as erased_serde::ser::Serializer>::erased_serialize_map Unexecuted instantiation: <alloc::boxed::Box<dyn erased_serde::ser::Serializer + core::marker::Sync> as erased_serde::ser::Serializer>::erased_serialize_map Unexecuted instantiation: <alloc::boxed::Box<dyn erased_serde::ser::Serializer + core::marker::Send + core::marker::Sync> as erased_serde::ser::Serializer>::erased_serialize_map Unexecuted instantiation: <&mut _ as erased_serde::ser::Serializer>::erased_serialize_map |
1348 | | |
1349 | 0 | fn erased_serialize_struct(&mut self, name: &'static str, len: usize) -> Result<Struct, Error> { |
1350 | 0 | (**self).erased_serialize_struct(name, len) |
1351 | 0 | } Unexecuted instantiation: <alloc::boxed::Box<dyn erased_serde::ser::Serializer> as erased_serde::ser::Serializer>::erased_serialize_struct Unexecuted instantiation: <alloc::boxed::Box<dyn erased_serde::ser::Serializer + core::marker::Send> as erased_serde::ser::Serializer>::erased_serialize_struct Unexecuted instantiation: <alloc::boxed::Box<dyn erased_serde::ser::Serializer + core::marker::Sync> as erased_serde::ser::Serializer>::erased_serialize_struct Unexecuted instantiation: <alloc::boxed::Box<dyn erased_serde::ser::Serializer + core::marker::Send + core::marker::Sync> as erased_serde::ser::Serializer>::erased_serialize_struct Unexecuted instantiation: <&mut _ as erased_serde::ser::Serializer>::erased_serialize_struct |
1352 | | |
1353 | 0 | fn erased_serialize_struct_variant(&mut self, name: &'static str, variant_index: u32, variant: &'static str, len: usize) -> Result<StructVariant, Error> { |
1354 | 0 | (**self).erased_serialize_struct_variant(name, variant_index, variant, len) |
1355 | 0 | } Unexecuted instantiation: <alloc::boxed::Box<dyn erased_serde::ser::Serializer> as erased_serde::ser::Serializer>::erased_serialize_struct_variant Unexecuted instantiation: <alloc::boxed::Box<dyn erased_serde::ser::Serializer + core::marker::Send> as erased_serde::ser::Serializer>::erased_serialize_struct_variant Unexecuted instantiation: <alloc::boxed::Box<dyn erased_serde::ser::Serializer + core::marker::Sync> as erased_serde::ser::Serializer>::erased_serialize_struct_variant Unexecuted instantiation: <alloc::boxed::Box<dyn erased_serde::ser::Serializer + core::marker::Send + core::marker::Sync> as erased_serde::ser::Serializer>::erased_serialize_struct_variant Unexecuted instantiation: <&mut _ as erased_serde::ser::Serializer>::erased_serialize_struct_variant |
1356 | | |
1357 | 0 | fn erased_is_human_readable(&self) -> bool { |
1358 | 0 | (**self).erased_is_human_readable() |
1359 | 0 | } Unexecuted instantiation: <alloc::boxed::Box<dyn erased_serde::ser::Serializer> as erased_serde::ser::Serializer>::erased_is_human_readable Unexecuted instantiation: <alloc::boxed::Box<dyn erased_serde::ser::Serializer + core::marker::Send> as erased_serde::ser::Serializer>::erased_is_human_readable Unexecuted instantiation: <alloc::boxed::Box<dyn erased_serde::ser::Serializer + core::marker::Sync> as erased_serde::ser::Serializer>::erased_is_human_readable Unexecuted instantiation: <alloc::boxed::Box<dyn erased_serde::ser::Serializer + core::marker::Send + core::marker::Sync> as erased_serde::ser::Serializer>::erased_is_human_readable Unexecuted instantiation: <&mut dyn erased_serde::ser::Serializer as erased_serde::ser::Serializer>::erased_is_human_readable Unexecuted instantiation: <&mut dyn erased_serde::ser::Serializer + core::marker::Send as erased_serde::ser::Serializer>::erased_is_human_readable Unexecuted instantiation: <&mut dyn erased_serde::ser::Serializer + core::marker::Send + core::marker::Sync as erased_serde::ser::Serializer>::erased_is_human_readable Unexecuted instantiation: <&mut dyn erased_serde::ser::Serializer + core::marker::Sync as erased_serde::ser::Serializer>::erased_is_human_readable |
1360 | | } |
1361 | | }; |
1362 | | } |
1363 | | |
1364 | | deref_erased_serializer!(<'a> Serializer for Box<dyn Serializer + 'a>); |
1365 | | deref_erased_serializer!(<'a> Serializer for Box<dyn Serializer + Send + 'a>); |
1366 | | deref_erased_serializer!(<'a> Serializer for Box<dyn Serializer + Sync + 'a>); |
1367 | | deref_erased_serializer!(<'a> Serializer for Box<dyn Serializer + Send + Sync + 'a>); |
1368 | | deref_erased_serializer!(<'a, T: ?Sized + Serializer> Serializer for &'a mut T); |
1369 | | |
1370 | | // ERROR /////////////////////////////////////////////////////////////////////// |
1371 | | |
1372 | 0 | fn erase<E>(e: E) -> Error |
1373 | 0 | where |
1374 | 0 | E: Display, |
1375 | 0 | { |
1376 | 0 | serde::ser::Error::custom(e) |
1377 | 0 | } Unexecuted instantiation: erased_serde::ser::erase::<erased_serde::error::Error> Unexecuted instantiation: erased_serde::ser::erase::<serde_json::error::Error> Unexecuted instantiation: erased_serde::ser::erase::<_> |
1378 | | |
1379 | 0 | fn unerase<E>(e: Error) -> E |
1380 | 0 | where |
1381 | 0 | E: serde::ser::Error, |
1382 | 0 | { |
1383 | 0 | E::custom(e) |
1384 | 0 | } Unexecuted instantiation: erased_serde::ser::unerase::<erased_serde::error::Error> Unexecuted instantiation: erased_serde::ser::unerase::<serde_json::error::Error> Unexecuted instantiation: erased_serde::ser::unerase::<_> |
1385 | | |
1386 | | // TEST //////////////////////////////////////////////////////////////////////// |
1387 | | |
1388 | | #[cfg(test)] |
1389 | | mod tests { |
1390 | | use super::*; |
1391 | | use crate::alloc::{vec, Vec}; |
1392 | | use serde_derive::Serialize; |
1393 | | |
1394 | | fn test_json<T>(t: T) |
1395 | | where |
1396 | | T: serde::Serialize, |
1397 | | { |
1398 | | let expected = serde_json::to_vec(&t).unwrap(); |
1399 | | |
1400 | | // test borrowed trait object |
1401 | | { |
1402 | | let obj: &dyn Serialize = &t; |
1403 | | |
1404 | | let mut buf = Vec::new(); |
1405 | | |
1406 | | { |
1407 | | let mut ser = serde_json::Serializer::new(&mut buf); |
1408 | | let ser: &mut dyn Serializer = &mut <dyn Serializer>::erase(&mut ser); |
1409 | | |
1410 | | obj.erased_serialize(ser).unwrap(); |
1411 | | } |
1412 | | |
1413 | | assert_eq!(buf, expected); |
1414 | | } |
1415 | | |
1416 | | // test boxed trait object |
1417 | | { |
1418 | | let obj: Box<dyn Serialize> = Box::new(t); |
1419 | | |
1420 | | let mut buf = Vec::new(); |
1421 | | |
1422 | | { |
1423 | | let mut ser = serde_json::Serializer::new(&mut buf); |
1424 | | let mut ser: Box<dyn Serializer> = Box::new(<dyn Serializer>::erase(&mut ser)); |
1425 | | |
1426 | | obj.erased_serialize(&mut ser).unwrap(); |
1427 | | } |
1428 | | |
1429 | | assert_eq!(buf, expected); |
1430 | | } |
1431 | | } |
1432 | | |
1433 | | #[test] |
1434 | | fn test_vec() { |
1435 | | test_json(vec!["a", "b"]); |
1436 | | } |
1437 | | |
1438 | | #[test] |
1439 | | fn test_struct() { |
1440 | | #[derive(Serialize)] |
1441 | | struct S { |
1442 | | f: usize, |
1443 | | } |
1444 | | |
1445 | | test_json(S { f: 256 }); |
1446 | | } |
1447 | | |
1448 | | #[test] |
1449 | | fn test_enum() { |
1450 | | #[derive(Serialize)] |
1451 | | enum E { |
1452 | | Unit, |
1453 | | Newtype(bool), |
1454 | | Tuple(bool, bool), |
1455 | | Struct { t: bool, f: bool }, |
1456 | | } |
1457 | | |
1458 | | test_json(E::Unit); |
1459 | | test_json(E::Newtype(true)); |
1460 | | test_json(E::Tuple(true, false)); |
1461 | | test_json(E::Struct { t: true, f: false }); |
1462 | | } |
1463 | | |
1464 | | #[test] |
1465 | | fn assert_serialize() { |
1466 | | fn assert<T: serde::Serialize>() {} |
1467 | | |
1468 | | assert::<&dyn Serialize>(); |
1469 | | assert::<&(dyn Serialize + Send)>(); |
1470 | | assert::<&(dyn Serialize + Sync)>(); |
1471 | | assert::<&(dyn Serialize + Send + Sync)>(); |
1472 | | assert::<&(dyn Serialize + Sync + Send)>(); |
1473 | | assert::<Vec<&dyn Serialize>>(); |
1474 | | assert::<Vec<&(dyn Serialize + Send)>>(); |
1475 | | |
1476 | | assert::<Box<dyn Serialize>>(); |
1477 | | assert::<Box<dyn Serialize + Send>>(); |
1478 | | assert::<Box<dyn Serialize + Sync>>(); |
1479 | | assert::<Box<dyn Serialize + Send + Sync>>(); |
1480 | | assert::<Box<dyn Serialize + Sync + Send>>(); |
1481 | | assert::<Vec<Box<dyn Serialize>>>(); |
1482 | | assert::<Vec<Box<dyn Serialize + Send>>>(); |
1483 | | } |
1484 | | |
1485 | | #[test] |
1486 | | fn assert_serializer() { |
1487 | | fn assert<T: serde::Serializer>() {} |
1488 | | |
1489 | | assert::<&mut dyn Serializer>(); |
1490 | | assert::<&mut (dyn Serializer + Send)>(); |
1491 | | assert::<&mut (dyn Serializer + Sync)>(); |
1492 | | assert::<&mut (dyn Serializer + Send + Sync)>(); |
1493 | | assert::<&mut (dyn Serializer + Sync + Send)>(); |
1494 | | } |
1495 | | } |