Skip to main content

TreeReader

Trait TreeReader 

Source
pub trait TreeReader {
    // Required methods
    fn root_info(&self) -> Result<(PageId, MerkleHash)>;
    fn page_digest(&self, page_id: PageId) -> Result<PageDigest>;
    fn leaf_entries(&self, page_id: PageId) -> Result<Vec<DiffEntry>>;

    // Provided method
    fn subtree_entries(&self, page_id: PageId) -> Result<Vec<DiffEntry>> { ... }
}
Expand description

Abstraction for reading tree structure during diff.

For local databases, LocalTreeReader reads from TxnManager directly. For remote databases, the transport layer implements this via message exchange.

Required Methods§

Source

fn root_info(&self) -> Result<(PageId, MerkleHash)>

Root page ID and its Merkle hash.

Source

fn page_digest(&self, page_id: PageId) -> Result<PageDigest>

Read a page digest (hash + type + children).

Source

fn leaf_entries(&self, page_id: PageId) -> Result<Vec<DiffEntry>>

Read all leaf entries from a leaf page.

Provided Methods§

Source

fn subtree_entries(&self, page_id: PageId) -> Result<Vec<DiffEntry>>

Collect all leaf entries from a subtree.

Implementors§