# pagedelta
LLAMA's primary unit of data.
---
## Example Usage: Building a `PageState` chain and iterating it
```rust
let pid = AtomicU32::new(0);
let mut page_state = DeltaChain::new(BasePage::small(), pid.load(Ordering::Acquire));
page_state.push(UpdateDelta::new_shared_delta(
b"first",
0, // Placeholder for in memory prior state pointer
pid.load(Ordering::Acquire),
));
page_state.push(UpdateDelta::new_shared_delta(
b"second",
1,
pid.load(Ordering::Acquire),
));
page_state.push(UpdateDelta::new_shared_delta(
b"third",
1,
pid.load(Ordering::Acquire),
));
let place_holder_offset: u64 = 0;
page_state.flush(place_holder_offset);
page_state.partial_swap(PartialSwapDelta::new_shared_delta(
b"evict",
0,
0,
pid.load(Ordering::Acquire),
));
let payloads = page_state
.iter_linear()
.find(|f| f.delta_type() == DeltaKind::Update)
.expect("Found Update Delta");
let delta = downcast_delta::<UpdateDelta>(payloads).expect("Successfull downcast");
assert_eq!(delta.delta_type(), DeltaKind::Update);
for node in page_state.iter_full() {
println!("{:?}", node.delta_type());
}
```