LLAMA's primary units of data.
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);
}