Db<B>: one shared backend, three facades. Replaces manually calling
GraphDb::from_arc/RelationalDb::from_arc on the same cloned
Arc<B> — this type is exactly that pattern, wrapped once.
Raw KV facade over a shared StorageBackend — the “everything else”
escape hatch alongside crate::graph::GraphDb and
crate::relational::RelationalDb, for callers who want direct
key/value access without going through either typed layer. Unlike
calling backend.begin_read()/begin_write() directly, every table
name passed here is checked against crate::RESERVED_TABLE_NAMES
first, so a caller can never accidentally corrupt bkndb-core’s own
internal tables the way an app-level RelSchema named "meta" once did.
Value type shared by the graph layer’s node/edge properties and the
relational layer’s row columns — reusing one type is what makes a graph
node’s property and a relational cell interchangeable without a
conversion layer.
A structured batch of graph nodes, graph edges, and relational rows
designed for high-performance atomic synchronization (e.g. codebase-recall indexing).
Identifies a logical table within a backend. M1 only deals in raw byte
tables; typed node/edge tables (M2+) are layered on top of this by
(de)serializing before calling put/get.
A lazily-evaluated, ascending stream of (key, value) pairs from one
table — see StorageReadTx::scan.
Owned (key, value) pairs, as returned by StorageReadTx::range.