A wrapper of TypedView to enable writes. The direct construction (by Obj::from_typed_view
or MummyObj::ptr_to_obj) could be useful for some unsafe access to a low-level item (e.g.
headers/metadata at bootstrap or part of ShaleStore implementation) stored at a given ObjPtr
. Users of ShaleStore implementation, however, will only use ObjRef for safeguarded access.
Purely volatile, vector-based implementation for MemStore. This is good for testing or trying
out stuff (persistent data structures) built on ShaleStore in memory, without having to write
your own MemStore implementation.
In-memory store that offers access to intervals from a linear byte space, which is usually
backed by a cached/memory-mapped pool of the accessed intervals from the underlying linear
persistent store. Reads could trigger disk reads to bring data into memory, but writes will
only be visible in memory (it does not write back to the disk).
A stored item type that can be decoded from or encoded to on-disk raw bytes. An efficient
implementation could be directly transmuting to/from a POD struct. But sometimes necessary
compression/decompression is needed to reduce disk I/O and facilitate faster in-memory access.
A addressed, typed, and read-writable handle for the stored item in ShaleStore. The object
represents the decoded/mapped data. The implementation of ShaleStore could use ObjCache to
turn a TypedView into an ObjRef.