Trait akd::storage::Storable

source ·
pub trait Storable: Clone + Sync + 'static {
    type StorageKey: Clone + Eq + Hash + Send + Sync + Debug;

    // Required methods
    fn data_type() -> StorageType;
    fn get_id(&self) -> Self::StorageKey;
    fn get_full_binary_key_id(key: &Self::StorageKey) -> Vec<u8> ;
    fn key_from_full_binary(bin: &[u8]) -> Result<Self::StorageKey, String>;

    // Provided method
    fn get_full_binary_id(&self) -> Vec<u8>  { ... }
}
Expand description

Storable represents an item which can be stored in the storage layer

Required Associated Types§

source

type StorageKey: Clone + Eq + Hash + Send + Sync + Debug

This particular storage will have a key type

Required Methods§

source

fn data_type() -> StorageType

Must return a valid storage type

source

fn get_id(&self) -> Self::StorageKey

Retrieve an instance of the id of this storable. The combination of the storable’s StorageType and this id are globally unique

source

fn get_full_binary_key_id(key: &Self::StorageKey) -> Vec<u8>

Retrieve the full binary version of a key (for comparisons)

source

fn key_from_full_binary(bin: &[u8]) -> Result<Self::StorageKey, String>

Reformat a key from the full-binary specification

Provided Methods§

source

fn get_full_binary_id(&self) -> Vec<u8>

Retrieve the full binary version of a key (for comparisons)

Object Safety§

This trait is not object safe.

Implementors§