Struct oasis_runtime_sdk::storage::HostStore

source ·
pub struct HostStore { /* private fields */ }
Expand description

A store for a specific state root that talks to the runtime host.

Implementations§

source§

impl HostStore

source

pub fn new(host: Arc<Protocol>, root: Root) -> Self

Create a new host store for the given host and root.

source

pub async fn new_for_round( host: Arc<Protocol>, consensus_verifier: &Arc<dyn Verifier>, id: Namespace, round: u64, ) -> Result<Self>

Create a new host store for the given host and root at the given round.

The corresponding root hash is fetched by looking it up in consensus layer state, verified by the passed verifier to be correct.

Trait Implementations§

source§

impl Store for HostStore

source§

fn get(&self, key: &[u8]) -> Option<Vec<u8>>

Fetch entry with given key.
source§

fn insert(&mut self, key: &[u8], value: &[u8])

Update entry with given key to the given value.
source§

fn remove(&mut self, key: &[u8])

Remove entry with given key.
source§

fn iter(&self) -> Box<dyn Iterator + '_>

Returns an iterator over the tree.
source§

fn prefetch_prefixes(&mut self, prefixes: Vec<Prefix>, limit: u16)

Populate the in-memory tree with nodes for keys starting with given prefixes.

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where T: 'a,

§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

§

impl<'a, T, E> AsTaggedImplicit<'a, E> for T
where T: 'a,

§

fn implicit( self, class: Class, constructed: bool, tag: u32, ) -> TaggedParser<'a, Implicit, Self, E>

source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

§

impl<T> Pointable for T

§

const ALIGN: usize = _

The alignment of pointer.
§

type Init = T

The type for initializers.
§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
source§

impl<T> Same for T

§

type Output = T

Should always be Self
source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

§

fn vzip(self) -> V