Crate sov_schema_db

Source
Expand description

This library implements a schematized DB on top of RocksDB. It makes sure all data passed in and out are structured according to predefined schemas and prevents access to raw keys and values. This library also enforces a set of specific DB options, like custom comparators and schema-to-column-family mapping.

It requires that different kinds of key-value pairs be stored in separate column families. To use this library to store a kind of key-value pairs, the user needs to use the define_schema! macro to define the schema name, the types of key and value, and name of the column family.

Re-exports§

pub use crate::schema::Schema;

Modules§

schema
A type-safe interface over DB column families.

Macros§

define_schema
A utility macro to define Schema implementors. You must specify the Schema implementor’s name, the key type, the value type, and the column family name.

Structs§

DB
This DB is a schematized RocksDB wrapper where all data passed in and out are typed according to Schemas.
SchemaBatch
SchemaBatch holds a collection of updates that can be applied to a DB (Schema) atomically. The updates will be applied in the order in which they are added to the SchemaBatch.
SchemaIterator
DB Iterator parameterized on Schema that seeks with Schema::Key and yields Schema::Key and Schema::Value pairs.

Enums§

CodecError
An error that occurred during (de)serialization of a Schema’s keys or values.

Constants§

DEFAULT_COLUMN_FAMILY_NAME
The name of the default column family.

Traits§

SeekKeyEncoder
This defines a type that can be used to seek a SchemaIterator, via interfaces like SchemaIterator::seek. Mind you, not all KeyEncoders shall be SeekKeyEncoders, and vice versa. E.g.: