Path: blob/main/crates/bevy_reflect/src/serde/de/tuples.rs
6600 views
use crate::{1serde::de::tuple_utils::visit_tuple, DynamicTuple, TupleInfo, TypeRegistration, TypeRegistry,2};3use core::{fmt, fmt::Formatter};4use serde::de::{SeqAccess, Visitor};56use super::ReflectDeserializerProcessor;78/// A [`Visitor`] for deserializing [`Tuple`] values.9///10/// [`Tuple`]: crate::Tuple11pub(super) struct TupleVisitor<'a, P> {12pub tuple_info: &'static TupleInfo,13pub registration: &'a TypeRegistration,14pub registry: &'a TypeRegistry,15pub processor: Option<&'a mut P>,16}1718impl<'de, P: ReflectDeserializerProcessor> Visitor<'de> for TupleVisitor<'_, P> {19type Value = DynamicTuple;2021fn expecting(&self, formatter: &mut Formatter) -> fmt::Result {22formatter.write_str("reflected tuple value")23}2425fn visit_seq<V>(self, mut seq: V) -> Result<Self::Value, V::Error>26where27V: SeqAccess<'de>,28{29visit_tuple(30&mut seq,31self.tuple_info,32self.registration,33self.registry,34self.processor,35)36}37}383940