pagedelta 0.2.1

Deltas: LLAMA's primary units of data.
Documentation
# 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());
}
```