Skip to main content

StructSerializer

Trait StructSerializer 

Source
pub trait StructSerializer: Serializer {
    // Required methods
    fn type_index() -> u32;
    fn fields_info(
        type_resolver: &TypeResolver,
    ) -> Result<Vec<FieldInfo>, Error>;
    fn variants_fields_info(
        type_resolver: &TypeResolver,
    ) -> Result<Vec<(String, TypeId, Vec<FieldInfo>)>, Error>;
    fn sorted_field_names() -> &'static [&'static str];
    fn read_compatible(
        context: &mut ReadContext<'_>,
        type_info: &Rc<TypeInfo>,
    ) -> Result<Self::Target, Error>;

    // Provided methods
    fn actual_type_id(
        type_id: u32,
        register_by_name: bool,
        compatible: bool,
        xlang: bool,
    ) -> Result<u32, Error> { ... }
    fn read_compatible_arc_any(
        context: &mut ReadContext<'_>,
        type_info: &Rc<TypeInfo>,
    ) -> Result<Arc<dyn Any + Send + Sync>, Error> { ... }
}
Expand description

Schema metadata and compatible reads for derive-generated serializers.

Required Methods§

Source

fn type_index() -> u32

Source

fn fields_info(type_resolver: &TypeResolver) -> Result<Vec<FieldInfo>, Error>

Source

fn variants_fields_info( type_resolver: &TypeResolver, ) -> Result<Vec<(String, TypeId, Vec<FieldInfo>)>, Error>

Source

fn sorted_field_names() -> &'static [&'static str]

Source

fn read_compatible( context: &mut ReadContext<'_>, type_info: &Rc<TypeInfo>, ) -> Result<Self::Target, Error>

Provided Methods§

Source

fn actual_type_id( type_id: u32, register_by_name: bool, compatible: bool, xlang: bool, ) -> Result<u32, Error>

Source

fn read_compatible_arc_any( context: &mut ReadContext<'_>, type_info: &Rc<TypeInfo>, ) -> Result<Arc<dyn Any + Send + Sync>, Error>

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementors§