Skip to main content

SerializableStruct

Trait SerializableStruct 

Source
pub trait SerializableStruct {
    // Required methods
    fn schema(&self) -> &Schema<'_>;
    fn serialize_members(
        &self,
        serializer: &mut dyn ShapeSerializer,
    ) -> Result<(), SerdeError>;
}
Expand description

Trait for structures that can be serialized via a schema.

Implemented by generated structure types. Because ShapeSerializer is object-safe, each struct gets one compiled serialize_members() that works with any serializer through dynamic dispatch.

§Example

ⓘ
impl SerializableStruct for MyStruct {
    fn schema(&self) -> &Schema<'_> {
        &MY_STRUCT_SCHEMA
    }

    fn serialize_members(&self, serializer: &mut dyn ShapeSerializer) -> Result<(), SerdeError> {
        serializer.write_string(&NAME_SCHEMA, &self.name)?;
        serializer.write_integer(&AGE_SCHEMA, self.age)?;
        Ok(())
    }
}

Required Methods§

Source

fn schema(&self) -> &Schema<'_>

Returns the schema of this structure or union itself, not of a member targeting it.

Borrowed from self so a value can report a schema built at runtime; generated types return their 'static schema, which coerces to the shorter lifetime.

Source

fn serialize_members( &self, serializer: &mut dyn ShapeSerializer, ) -> Result<(), SerdeError>

Serializes this structure’s members using the provided serializer.

Implementations on Foreign Types§

Source§

impl SerializableStruct for Infallible

Source§

fn schema(&self) -> &Schema<'_>

Source§

fn serialize_members( &self, _: &mut dyn ShapeSerializer, ) -> Result<(), SerdeError>

Source§

impl<T: SerializableStruct + ?Sized> SerializableStruct for Box<T>

Source§

fn schema(&self) -> &Schema<'_>

Source§

fn serialize_members( &self, serializer: &mut dyn ShapeSerializer, ) -> Result<(), SerdeError>

Implementors§