template <typename _Key, typename _Meta = void>

class SlabStorage

Defined at line 57 of file ../../src/lib/vmo_store/storage_types.h

A storage base for VmoStore that uses a GrowableSlab backing.

SlabStorage is always constructed with a 0 capacity and must be manually grown by calling

`Reserve`.

SlabStorage is optimally suited for narrow and tight (non-sparse) key sets. It guarantees O(1)

worst-case time-complexity on `Push`, `Get`, `Erase`, and `Insert`, but O(n) on `Reserve`.

Public Methods

void SlabStorage<_Key, _Meta> ()

Defined at line 62 of file ../../src/lib/vmo_store/storage_types.h

zx_status_t Reserve (size_t capacity)

Defined at line 64 of file ../../src/lib/vmo_store/storage_types.h

zx_status_t Insert (Key key, Item && vmo)

Defined at line 69 of file ../../src/lib/vmo_store/storage_types.h

std::optional<Key> Push (Item && vmo)

Defined at line 73 of file ../../src/lib/vmo_store/storage_types.h

Item * Get (const Key & key)

Defined at line 75 of file ../../src/lib/vmo_store/storage_types.h

std::optional<Item> Extract (Key key)

Defined at line 77 of file ../../src/lib/vmo_store/storage_types.h

size_t count ()

Defined at line 79 of file ../../src/lib/vmo_store/storage_types.h

bool is_full ()

Defined at line 81 of file ../../src/lib/vmo_store/storage_types.h