Path: blob/main/crates/bevy_reflect/src/serde/de/tuples.rs
9411 views
use crate::{1serde::de::tuple_utils::visit_tuple,2tuple::{DynamicTuple, TupleInfo},3TypeRegistration, TypeRegistry,4};5use core::{fmt, fmt::Formatter};6use serde::de::{SeqAccess, Visitor};78use super::ReflectDeserializerProcessor;910/// A [`Visitor`] for deserializing [`Tuple`] values.11///12/// [`Tuple`]: crate::tuple::Tuple13pub(super) struct TupleVisitor<'a, P> {14pub tuple_info: &'static TupleInfo,15pub registration: &'a TypeRegistration,16pub registry: &'a TypeRegistry,17pub processor: Option<&'a mut P>,18}1920impl<'de, P: ReflectDeserializerProcessor> Visitor<'de> for TupleVisitor<'_, P> {21type Value = DynamicTuple;2223fn expecting(&self, formatter: &mut Formatter) -> fmt::Result {24formatter.write_str("reflected tuple value")25}2627fn visit_seq<V>(self, mut seq: V) -> Result<Self::Value, V::Error>28where29V: SeqAccess<'de>,30{31visit_tuple(32&mut seq,33self.tuple_info,34self.registration,35self.registry,36self.processor,37)38}39}404142