MCPcopy Create free account
hub / github.com/Amanieu/regalloc3 / deserialize

Method deserialize

src/entity/set.rs:304–344  ·  view source on GitHub ↗
(deserializer: D)

Source from the content-addressed store, hash-verified

302 T: EntityRef + serde::Deserialize<'de>,
303{
304 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
305 where
306 D: serde::Deserializer<'de>,
307 {
308 struct SeqVisitor<T>
309 where
310 T: EntityRef,
311 {
312 marker: PhantomData<EntitySet<T>>,
313 }
314
315 impl<'de, T> serde::de::Visitor<'de> for SeqVisitor<T>
316 where
317 T: EntityRef + serde::Deserialize<'de>,
318 {
319 type Value = EntitySet<T>;
320
321 fn expecting(&self, formatter: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
322 formatter.write_str("a sequence")
323 }
324
325 #[inline]
326 fn visit_seq<A>(self, mut seq: A) -> Result<Self::Value, A::Error>
327 where
328 A: serde::de::SeqAccess<'de>,
329 {
330 let mut values = EntitySet::new();
331
332 while let Some(value) = seq.next_element()? {
333 values.insert(value);
334 }
335
336 Ok(values)
337 }
338 }
339
340 let visitor = SeqVisitor {
341 marker: PhantomData,
342 };
343 deserializer.deserialize_seq(visitor)
344 }
345}
346
347/// Iterator over the elements in an [`EntitySet`].

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected