Search Apps Documentation Source Content File Folder Download Copy Actions Download State String Boolean Number Struct Map Slice Pointer Function Closure Reference Nil Package Type Interface Unknown

/p/moul/collection/v0

Directory · 4 Files
README.md Open

gno.land/p/moul/collection/v0

A generic collection with multiple indexes (unique, case-insensitive, sparse, multi-value), backed by a B+ tree (gno.land/p/nt/bptree/v0).

A B+ tree packs many entries per persisted node, so each index entry costs materially less storage and gas than an AVL backing would.

Two operational caveats follow from the in-place-mutating B+ tree backing:

  • do not mutate the collection (Set/Update/Delete) from inside an index iteration callback — a copy-on-write AVL backing would tolerate it, this one does not;
  • do not copy a non-zero Collection by value — the copies would share live tree nodes while their state diverges.

Part of moul/gno-contracts — moul's versioned gno.land contracts. See the repository for the full catalog, build/test tooling, and usage.

Dependency graph:

gno.land/p/moul/collection/v0 dependency graph

⚠️ Disclaimer: provided as-is, without warranty; not security-audited. Full disclaimer: DISCLAIMER.