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§
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>
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.