Path: blob/main/crates/bevy_reflect/src/serde/ser/tuples.rs
6600 views
use crate::{serde::TypedReflectSerializer, Tuple, TypeRegistry};1use serde::{ser::SerializeTuple, Serialize};23use super::ReflectSerializerProcessor;45/// A serializer for [`Tuple`] values.6pub(super) struct TupleSerializer<'a, P> {7pub tuple: &'a dyn Tuple,8pub registry: &'a TypeRegistry,9pub processor: Option<&'a P>,10}1112impl<P: ReflectSerializerProcessor> Serialize for TupleSerializer<'_, P> {13fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>14where15S: serde::Serializer,16{17let mut state = serializer.serialize_tuple(self.tuple.field_len())?;1819for value in self.tuple.iter_fields() {20state.serialize_element(&TypedReflectSerializer::new_internal(21value,22self.registry,23self.processor,24))?;25}26state.end()27}28}293031