plebeia

Merkle Patricia tree implementation
Library plebeia
val ls : Plebeia__Context.t -> Plebeia__Node.node -> (Segment.t * Plebeia__Node.node) list

List Leaves and Buds reachable from the node. Buds are not scanned recursively.

val ls_rec : Plebeia__Context.t -> Plebeia__Node.node -> (Segment.t list * Plebeia__Node.node) list

ls_rec context node lists Leaves recursively reachable from node. node must be either a Leaf or Bud.

val equal : Plebeia__Context.t -> Plebeia__Node.node -> Plebeia__Node.node -> ( unit, Plebeia__Node.node * Plebeia__Node.node ) Result.t
val count_cells : upto:int -> Plebeia__Context.t -> Plebeia__Node.node -> [> `EQ of int | `GE of int ]

Roughly count the cells used for the node and its subnodes. The same physical node on disk is counted only once. Non-indexed nodes shared on memory are counted more than once. Links are not counted, since it is not visible in Node.node. The cell counts of big leaves are not very precise, since the structure is not visible in Node.node.