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§
Sourcefn serialize_value(&self, value: &Value) -> Result<Vec<u8>, CheckpointError>
fn serialize_value(&self, value: &Value) -> Result<Vec<u8>, CheckpointError>
Sourcefn deserialize_value(&self, data: &[u8]) -> Result<Value, CheckpointError>
fn deserialize_value(&self, data: &[u8]) -> Result<Value, CheckpointError>
Deserialize bytes back to a JSON value
§Errors
Returns CheckpointError::Deserialize if deserialization fails.
Sourcefn serialize<T: Serialize>(&self, value: &T) -> Result<Vec<u8>, CheckpointError>
fn serialize<T: Serialize>(&self, value: &T) -> Result<Vec<u8>, CheckpointError>
Serialize any serializable type to bytes
§Errors
Returns CheckpointError::Serialize if serialization fails.
Sourcefn deserialize<T: DeserializeOwned>(
&self,
data: &[u8],
) -> Result<T, CheckpointError>
fn deserialize<T: DeserializeOwned>( &self, data: &[u8], ) -> Result<T, CheckpointError>
Deserialize bytes to any deserializable type
§Errors
Returns CheckpointError::Deserialize if deserialization fails.
Sourcefn format(&self) -> SerializationFormat
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".