Skip to main content

Serializer

Trait Serializer 

Source
pub trait Serializer: Send + Sync {
    // Required methods
    fn serialize<T: Serialize>(&self, value: &T) -> Result<Vec<u8>>;
    fn deserialize<T: DeserializeOwned>(&self, bytes: &[u8]) -> Result<T>;
    fn serialize_request(&self, req: &Request) -> Result<Vec<u8>>;
    fn deserialize_request(&self, bytes: &[u8]) -> Result<Request>;
    fn serialize_response(&self, resp: &Response) -> Result<Vec<u8>>;
    fn deserialize_response(&self, bytes: &[u8]) -> Result<Response>;
    fn serialize_error(&self, err: &ErrorMessage) -> Result<Vec<u8>>;
    fn deserialize_error(&self, bytes: &[u8]) -> Result<ErrorMessage>;
}

Required Methods§

Source

fn serialize<T: Serialize>(&self, value: &T) -> Result<Vec<u8>>

Source

fn deserialize<T: DeserializeOwned>(&self, bytes: &[u8]) -> Result<T>

Source

fn serialize_request(&self, req: &Request) -> Result<Vec<u8>>

Source

fn deserialize_request(&self, bytes: &[u8]) -> Result<Request>

Source

fn serialize_response(&self, resp: &Response) -> Result<Vec<u8>>

Source

fn deserialize_response(&self, bytes: &[u8]) -> Result<Response>

Source

fn serialize_error(&self, err: &ErrorMessage) -> Result<Vec<u8>>

Source

fn deserialize_error(&self, bytes: &[u8]) -> Result<ErrorMessage>

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§