Skip to main content

MultiFormat

Trait MultiFormat 

Source
pub trait MultiFormat:
    Serialize
    + for<'de> Deserialize<'de>
    + Sized {
    // Provided methods
    fn serialize_format(&self, format: SerializationFormat) -> Result<Vec<u8>> { ... }
    fn serialize_with_header(
        &self,
        format: SerializationFormat,
    ) -> Result<Vec<u8>> { ... }
    fn deserialize_format(
        data: &[u8],
        format: SerializationFormat,
    ) -> Result<Self> { ... }
    fn deserialize_with_header(
        data: &[u8],
    ) -> Result<(Self, SerializationFormat)> { ... }
}
Expand description

Trait for types that support multiple serialization formats

Provided Methods§

Source

fn serialize_format(&self, format: SerializationFormat) -> Result<Vec<u8>>

Serialize to bytes using the specified format

Source

fn serialize_with_header(&self, format: SerializationFormat) -> Result<Vec<u8>>

Serialize to bytes with format header

Source

fn deserialize_format(data: &[u8], format: SerializationFormat) -> Result<Self>

Deserialize from bytes using the specified format

Source

fn deserialize_with_header(data: &[u8]) -> Result<(Self, SerializationFormat)>

Deserialize from bytes with format header

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementors§