Skip to main content

CheckpointSerializer

Trait CheckpointSerializer 

Source
pub trait CheckpointSerializer:
    Send
    + Sync
    + 'static {
    // Required methods
    fn serialize_value(&self, value: &Value) -> Result<Vec<u8>, CheckpointError>;
    fn deserialize_value(&self, data: &[u8]) -> Result<Value, CheckpointError>;
    fn serialize<T: Serialize>(
        &self,
        value: &T,
    ) -> Result<Vec<u8>, CheckpointError>;
    fn deserialize<T: DeserializeOwned>(
        &self,
        data: &[u8],
    ) -> Result<T, CheckpointError>;
    fn format(&self) -> SerializationFormat;
}
Expand description

Checkpoint serializer trait

Abstraction over different serialization formats, allowing checkpoint storage to use JSON, MessagePack, or custom serialization strategies.

Required Methods§

Source

fn serialize_value(&self, value: &Value) -> Result<Vec<u8>, CheckpointError>

Serialize a JSON value to bytes

§Errors

Returns CheckpointError::Serialize if serialization fails.

Source

fn deserialize_value(&self, data: &[u8]) -> Result<Value, CheckpointError>

Deserialize bytes back to a JSON value

§Errors

Returns CheckpointError::Deserialize if deserialization fails.

Source

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

Serialize any serializable type to bytes

§Errors

Returns CheckpointError::Serialize if serialization fails.

Source

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

Deserialize bytes to any deserializable type

§Errors

Returns CheckpointError::Deserialize if deserialization fails.

Source

fn format(&self) -> SerializationFormat

Get the format identifier

Dyn Compatibility§

This trait is not dyn compatible.

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

Implementors§