Bitmapped Vector Trie vector, a sequential persistent collection.

Based on Phil Bagwell’s Hash Array Mapped Tries, this collection type stores its items in a trie (pronounced /ˈtriː/), which offers both persistency and efficient item lookup. Vectors have an amortized constant time access to their items and efficient insertion/removal of items from the rear.

BVT vectors have support for transients, folding, efficient reversion and sectioning. Support for slicing is added through RRB-Tree based vectors. Besides BVT vector, Dunaj offers following persistent vector types:

  • tuples for efficient representation of small vectors

  • RRB-Tree vectors for efficient catenation or insertion/removal of items in the middle of a vector.

  • primitive vectors for efficient storage of host primitive data types.

Just like all vector types, tuples add/remove items to/from the rear of the collection.

Except for very special cases, it is idiomatic to use vector literal or functions defined in coll.default rather than ones in this namespace.

bvt-vector-factory

Available since version 1.0 (view source)

not referred automatically

VAR of type ICollectionFactory

A BVT vector factory instance. Currently there are no options.

This factory implements ICollectionFactory factory protocol.

New instances of BVT vector can be created with collection and ->collection.