Trait hecs::serialize::DeserializeContext [−][src]
Implements deserialization of entities from a serde MapAccess
into an EntityBuilder
Data external to the World
can be populated during deserialization by storing mutable
references inside the struct implementing this trait.
Example
use hecs::{*, serialize::*}; // Could include references to external state for use by `deserialize_entity` struct Context; #[derive(Serialize, Deserialize)] enum ComponentId { Position, Velocity } impl DeserializeContext for Context { fn deserialize_entity<'de, M>( &mut self, mut map: M, entity: &mut EntityBuilder, ) -> Result<(), M::Error> where M: serde::de::MapAccess<'de>, { while let Some(key) = map.next_key()? { match key { ComponentId::Position => { entity.add::<Position>(map.next_value()?); } ComponentId::Velocity => { entity.add::<Velocity>(map.next_value()?); } } } Ok(()) } }
Required methods
fn deserialize_entity<'de, M>(
&mut self,
map: M,
entity: &mut EntityBuilder
) -> Result<(), M::Error> where
M: MapAccess<'de>,
[src]
&mut self,
map: M,
entity: &mut EntityBuilder
) -> Result<(), M::Error> where
M: MapAccess<'de>,
Deserialize a single entity