Skip to main content

ApplierHost

Trait ApplierHost 

Source
pub trait ApplierHost {
    // Required methods
    fn borrow_dyn(&self) -> ApplierGuard<'_, dyn Applier>;
    fn dispose_nodes(&self, disposal: NodeDisposal) -> Result<(), NodeError>;

    // Provided method
    fn compact(&self) { ... }
}
Expand description

Owns an applier and completes node disposal when an outstanding borrow ends.

Required Methods§

Source

fn borrow_dyn(&self) -> ApplierGuard<'_, dyn Applier>

Source

fn dispose_nodes(&self, disposal: NodeDisposal) -> Result<(), NodeError>

Disposes detached roots, deferring recursive cleanup to the current borrow’s guard.

use cranpose_core::{
    Applier, ApplierHost, ConcreteApplierHost, MemoryApplier, Node, NodeDisposal,
};
struct Leaf;
impl Node for Leaf {}
let host = ConcreteApplierHost::new(MemoryApplier::new());
let mut applier = host.borrow_typed();
let root = applier.create(Box::new(Leaf));
host.dispose_nodes(NodeDisposal::new(vec![(
    root,
    applier.node_generation(root),
)]))?;
drop(applier);
assert!(host.borrow_typed().get_mut(root).is_err());

Provided Methods§

Source

fn compact(&self)

Compacts internal storage after commands have been applied.

Dyn Compatibility§

This trait is dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementors§