[][src]Trait legion::serialize::WorldDeserializer

pub trait WorldDeserializer {
    type TypeId: for<'de> Deserialize<'de>;
    fn unmap_id(
        &self,
        type_id: &Self::TypeId
    ) -> Result<ComponentTypeId, UnknownType>;
fn register_component(
        &self,
        type_id: Self::TypeId,
        layout: &mut EntityLayout
    );
fn deserialize_component_slice<'a, 'de, D: Deserializer<'de>>(
        &self,
        type_id: ComponentTypeId,
        storage: UnknownComponentWriter<'a>,
        deserializer: D
    ) -> Result<(), D::Error>;
fn deserialize_component<'de, D: Deserializer<'de>>(
        &self,
        type_id: ComponentTypeId,
        deserializer: D
    ) -> Result<Box<[u8]>, D::Error>;
fn with_entity_serializer(
        &self,
        callback: &mut dyn FnMut(&dyn EntitySerializer)
    ); }

Describes a type which knows how to deserialize the components in a world.

Associated Types

type TypeId: for<'de> Deserialize<'de>

The stable type ID used to identify each component type in the serialized data.

Loading content...

Required methods

fn unmap_id(
    &self,
    type_id: &Self::TypeId
) -> Result<ComponentTypeId, UnknownType>

Converts the serialized type ID into a runtime component type ID.

fn register_component(&self, type_id: Self::TypeId, layout: &mut EntityLayout)

Adds the specified component to the given entity layout.

fn deserialize_component_slice<'a, 'de, D: Deserializer<'de>>(
    &self,
    type_id: ComponentTypeId,
    storage: UnknownComponentWriter<'a>,
    deserializer: D
) -> Result<(), D::Error>

Deserializes a slice of components and inserts them into the given storage.

fn deserialize_component<'de, D: Deserializer<'de>>(
    &self,
    type_id: ComponentTypeId,
    deserializer: D
) -> Result<Box<[u8]>, D::Error>

Deserializes a single component and returns it as a boxed u8 slice.

fn with_entity_serializer(
    &self,
    callback: &mut dyn FnMut(&dyn EntitySerializer)
)

Calls callback with the Entity ID serializer

Loading content...

Implementors

impl<T, S> WorldDeserializer for Registry<T, S> where
    T: TypeKey,
    S: CustomEntitySerializer + 'static, 
[src]

type TypeId = T

Loading content...