[][src]Trait canonical_host::Store

pub trait Store: 'static + Clone + Default {
    type Ident: Ident;
    type Error: From<InvalidEncoding> + Debug;
    fn fetch(
        &self,
        id: &Self::Ident,
        into: &mut [u8]
    ) -> Result<(), Self::Error>;
fn get<T>(&self, id: &Self::Ident) -> Result<T, Self::Error>
    where
        T: Canon<Self>
;
fn put<T>(&self, t: &T) -> Result<Self::Ident, Self::Error>
    where
        T: Canon<Self>
;
fn put_raw(&self, bytes: &[u8]) -> Result<Self::Ident, Self::Error>; fn ident<T>(t: &T) -> Self::Ident
    where
        T: Canon<Self>
, { ... } }

The main trait for storing/transmitting data, in the case of a wasm environment, this is generally implemented with host calls

Associated Types

type Ident: Ident

The identifier used for allocations

type Error: From<InvalidEncoding> + Debug

The error the store can emit

Loading content...

Required methods

fn fetch(&self, id: &Self::Ident, into: &mut [u8]) -> Result<(), Self::Error>

Write bytes associated with Ident

fn get<T>(&self, id: &Self::Ident) -> Result<T, Self::Error> where
    T: Canon<Self>, 

Get a value from storage, given an identifier

fn put<T>(&self, t: &T) -> Result<Self::Ident, Self::Error> where
    T: Canon<Self>, 

Encode a value into the store

fn put_raw(&self, bytes: &[u8]) -> Result<Self::Ident, Self::Error>

Put raw bytes in store

Loading content...

Provided methods

fn ident<T>(t: &T) -> Self::Ident where
    T: Canon<Self>, 

Calculate the Identifier of a type without storing it

Loading content...

Implementations on Foreign Types

impl<I> Store for BridgeStore<I> where
    I: 'static + Ident
[src]

type Ident = I

type Error = InvalidEncoding

Loading content...

Implementors

impl Store for MemStore[src]

type Ident = Id32

type Error = MemError

Loading content...