MCPcopy Create free account
hub / github.com/SoftbearStudios/bitcode / deserialize_seq

Method deserialize_seq

src/serde/de.rs:255–301  ·  view source on GitHub ↗
(mut self, v: V)

Source from the content-addressed store, hash-verified

253 }
254
255 fn deserialize_seq<V>(mut self, v: V) -> Result<V::Value>
256 where
257 V: Visitor<'de>,
258 {
259 let (length_decoder, decoder) = specify!(self, Seq);
260 let len = length_decoder.decode();
261
262 struct Access<'a, 'de> {
263 wrapper: DecoderWrapper<'a, 'de>,
264 len: usize,
265 }
266 impl<'de> SeqAccess<'de> for Access<'_, 'de> {
267 type Error = Error;
268
269 #[inline(always)]
270 fn next_element_seed<T>(&mut self, seed: T) -> Result<Option<T::Value>>
271 where
272 T: DeserializeSeed<'de>,
273 {
274 guard_zst::<T::Value>(self.len)?;
275 if self.len != 0 {
276 self.len -= 1;
277 Ok(Some(DeserializeSeed::deserialize(
278 seed,
279 DecoderWrapper {
280 decoder: &mut *self.wrapper.decoder,
281 input: &mut *self.wrapper.input,
282 },
283 )?))
284 } else {
285 Ok(None)
286 }
287 }
288
289 #[inline(always)]
290 fn size_hint(&self) -> Option<usize> {
291 Some(self.len)
292 }
293 }
294 v.visit_seq(Access {
295 wrapper: DecoderWrapper {
296 decoder,
297 input: self.input,
298 },
299 len,
300 })
301 }
302
303 #[inline(always)]
304 fn deserialize_tuple<V>(mut self, tuple_len: usize, v: V) -> Result<V::Value>

Callers

nothing calls this directly

Calls 1

decodeMethod · 0.45

Tested by

no test coverage detected