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.


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.