Header menu logo issie

NodeOrLeaf Type

A 16-way trie over the address, used when the address space is too large to give every address a slot number in a flat array. It is grown in place and never copied: a slot is filled once and never repointed, which is what removes the per-write path copy the `Map` paid. A `Leaf` may sit above its natural depth - that path compression is the whole reason this is a union rather than a fixed-depth array of arrays, since depth follows from the address width and would otherwise be known - so the leaf carries its own address and it is checked on arrival.

Union cases

Union case Description

Leaf(addr, slot)

Full Usage: Leaf(addr, slot)

Parameters:
    addr : uint32
    slot : int

addr : uint32
slot : int

Node NodeOrLeaf option array

Full Usage: Node NodeOrLeaf option array

Parameters:
Item : NodeOrLeaf option array

Instance members

Instance member Description

this.IsLeaf

Full Usage: this.IsLeaf

Returns: bool
Returns: bool

this.IsNode

Full Usage: this.IsNode

Returns: bool
Returns: bool

Type something to start searching.