pagedelta 0.1.1

Deltas: LLAMA's primary units of data.
Documentation

pagedelta

LLAMA's primary units of data.


Building a PageState chain and iterating it

use pagedelta::{BasePage, PageState, UpdateDelta, FlushDelta, PartialSwapDelta};
use std::sync::Arc;

let base = Arc::new(PageState::Base(BasePage::small()));
let s1   = base.push_delta(UpdateDelta::new_shared_delta(b"op1", 0, 0));
let s2   = s1.push_delta(FlushDelta::new_shared_delta(0xDEAD, 0));
let flush_point = Arc::clone(&s2);
let s3   = s2.push_partial_swap(
    PartialSwapDelta::new_shared_delta(b"swap", 0, 0, 0),
    flush_point,
);

// The iterator visits every node exactly once, even the shared flush node.
for node in s3.iter() {
    println!("{:?}", node);
}