Expand description
Checkpoint wrapper that persists a collection to block storage.
Durable<T> wraps any Serialize + DeserializeOwned value (typically
a collection’s state snapshot) and provides checkpoint()
and restore() to write and read the inner value
from a BlockLease.
§Checkpoint format
Block 0: [header] magic: "DCHK" (4) | version: u32 (4) | data_len: u64 (8) | padding (496)
Block 1..N: [data] postcard-serialized value, zero-padded to 512-byte boundaries§Example
use grafos_collections::durable::Durable;
use grafos_std::block::BlockBuilder;
use serde::{Serialize, Deserialize};
#[derive(Serialize, Deserialize, Debug, PartialEq)]
struct State { counter: u64 }
let lease = BlockBuilder::new().acquire()?;
let durable = Durable::new(State { counter: 42 }, lease);
durable.checkpoint()?;
let lease = durable.into_block_lease();
let restored: Durable<State> = Durable::restore(lease)?;
assert_eq!(restored.inner().counter, 42);Structs§
- Durable
- A wrapper that checkpoints its inner value to block storage.