[][src]Trait legion::serialize::WorldSerializer

pub trait WorldSerializer {
    type TypeId: Serialize + Ord;
    fn map_id(
        &self,
        type_id: ComponentTypeId
    ) -> Result<Self::TypeId, UnknownType>;
unsafe fn serialize_component<S: Serializer>(
        &self,
        ty: ComponentTypeId,
        ptr: *const u8,
        serializer: S
    ) -> Result<S::Ok, S::Error>;
unsafe fn serialize_component_slice<S: Serializer>(
        &self,
        ty: ComponentTypeId,
        storage: &dyn UnknownComponentStorage,
        archetype: ArchetypeIndex,
        serializer: S
    ) -> Result<S::Ok, S::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: Serialize + Ord

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

Loading content...

Required methods

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

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

unsafe fn serialize_component<S: Serializer>(
    &self,
    ty: ComponentTypeId,
    ptr: *const u8,
    serializer: S
) -> Result<S::Ok, S::Error>

Serializes a single component.

Safety

The pointer must point to a valid instance of the component type represented by the given component type ID.

unsafe fn serialize_component_slice<S: Serializer>(
    &self,
    ty: ComponentTypeId,
    storage: &dyn UnknownComponentStorage,
    archetype: ArchetypeIndex,
    serializer: S
) -> Result<S::Ok, S::Error>

Serializes a slice of components.

Safety

The pointer must point to a valid instance of the component type represented by the given component type ID.

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

Calls callback with the Entity ID serializer

Loading content...

Implementors

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

type TypeId = T

Loading content...