Path: blob/main/crates/bevy_reflect/src/serde/ser/maps.rs
6600 views
use crate::{serde::TypedReflectSerializer, Map, TypeRegistry};1use serde::{ser::SerializeMap, Serialize};23use super::ReflectSerializerProcessor;45/// A serializer for [`Map`] values.6pub(super) struct MapSerializer<'a, P> {7pub map: &'a dyn Map,8pub registry: &'a TypeRegistry,9pub processor: Option<&'a P>,10}1112impl<P: ReflectSerializerProcessor> Serialize for MapSerializer<'_, P> {13fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>14where15S: serde::Serializer,16{17let mut state = serializer.serialize_map(Some(self.map.len()))?;18for (key, value) in self.map.iter() {19state.serialize_entry(20&TypedReflectSerializer::new_internal(key, self.registry, self.processor),21&TypedReflectSerializer::new_internal(value, self.registry, self.processor),22)?;23}24state.end()25}26}272829