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