pub trait DedupSerializerState: Sized {
// Required methods
fn record_serialized<T: Dedup>(
&self,
value: &T,
) -> Option<Result<DedupId, DedupId>>;
fn record_deserialized<T: Dedup>(&self, id: DedupId, value: T);
fn get_deserialized<T: Dedup>(&self, id: DedupId) -> Option<T>;
}Expand description
The state threaded through (de)serialization to deduplicate values. Use () to serialize
values normally and DedupSerializer to deduplicate them.
Required Methods§
Sourcefn record_serialized<T: Dedup>(
&self,
value: &T,
) -> Option<Result<DedupId, DedupId>>
fn record_serialized<T: Dedup>( &self, value: &T, ) -> Option<Result<DedupId, DedupId>>
Record that we’re serializing this value. Returns None if we’re not deduplicating
values, Some(Ok(id)) the first time we meet a given value (it must then be serialized
in full), and Some(Err(id)) afterwards (only the id must be serialized).
Sourcefn record_deserialized<T: Dedup>(&self, id: DedupId, value: T)
fn record_deserialized<T: Dedup>(&self, id: DedupId, value: T)
Record that we deserialized the value with this id.
Sourcefn get_deserialized<T: Dedup>(&self, id: DedupId) -> Option<T>
fn get_deserialized<T: Dedup>(&self, id: DedupId) -> Option<T>
Find the previously-deserialized value with that id.
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".
Implementations on Foreign Types§
Source§impl DedupSerializerState for ()
Don’t deduplicate anything.
impl DedupSerializerState for ()
Don’t deduplicate anything.