pub struct KVStorePermissions<'a, K: KV<'a>> { /* private fields */ }
Expand description

Key-Value store with Tock-specific extensions for permissions and access control.

Implements KVPermissions on top of KV.

Implementations§

source§

impl<'a, K: KV<'a>> KVStorePermissions<'a, K>

source

pub fn new( kv: &'a K, header_value: &'static mut [u8; 9], ) -> KVStorePermissions<'a, K>

Trait Implementations§

source§

impl<'a, K: KV<'a>> KVClient for KVStorePermissions<'a, K>

source§

fn get_complete( &self, result: Result<(), ErrorCode>, key: SubSliceMut<'static, u8>, value: SubSliceMut<'static, u8>, )

This callback is called when the get operation completes. Read more
source§

fn set_complete( &self, result: Result<(), ErrorCode>, key: SubSliceMut<'static, u8>, value: SubSliceMut<'static, u8>, )

This callback is called when the set operation completes. Read more
source§

fn add_complete( &self, result: Result<(), ErrorCode>, key: SubSliceMut<'static, u8>, value: SubSliceMut<'static, u8>, )

This callback is called when the add operation completes. Read more
source§

fn update_complete( &self, result: Result<(), ErrorCode>, key: SubSliceMut<'static, u8>, value: SubSliceMut<'static, u8>, )

This callback is called when the update operation completes. Read more
source§

fn delete_complete( &self, result: Result<(), ErrorCode>, key: SubSliceMut<'static, u8>, )

This callback is called when the delete operation completes. Read more
source§

impl<'a, K: KV<'a>> KVPermissions<'a> for KVStorePermissions<'a, K>

source§

fn set_client(&self, client: &'a dyn KVClient)

Configure the client for operation callbacks.
source§

fn get( &self, key: SubSliceMut<'static, u8>, value: SubSliceMut<'static, u8>, permissions: StoragePermissions, ) -> Result<(), (SubSliceMut<'static, u8>, SubSliceMut<'static, u8>, ErrorCode)>

Retrieve a value based on the given key. Read more
source§

fn set( &self, key: SubSliceMut<'static, u8>, value: SubSliceMut<'static, u8>, permissions: StoragePermissions, ) -> Result<(), (SubSliceMut<'static, u8>, SubSliceMut<'static, u8>, ErrorCode)>

Store a value based on the given key. If the key does not exist it will be added. If the key already exists the value will be updated. Read more
source§

fn add( &self, key: SubSliceMut<'static, u8>, value: SubSliceMut<'static, u8>, permissions: StoragePermissions, ) -> Result<(), (SubSliceMut<'static, u8>, SubSliceMut<'static, u8>, ErrorCode)>

Store a new value based on the given key. If the key does not exist it will be added. If the key already exists an error callback will be provided. Read more
source§

fn update( &self, key: SubSliceMut<'static, u8>, value: SubSliceMut<'static, u8>, permissions: StoragePermissions, ) -> Result<(), (SubSliceMut<'static, u8>, SubSliceMut<'static, u8>, ErrorCode)>

Modify a value based on the given key. If the key does not exist it an error callback will be provided. Read more
source§

fn delete( &self, key: SubSliceMut<'static, u8>, permissions: StoragePermissions, ) -> Result<(), (SubSliceMut<'static, u8>, ErrorCode)>

Delete a key-value object based on the given key. Read more
source§

fn header_size(&self) -> usize

Returns the length of the key-value store’s header in bytes. Read more

Auto Trait Implementations§

§

impl<'a, K> !Freeze for KVStorePermissions<'a, K>

§

impl<'a, K> !RefUnwindSafe for KVStorePermissions<'a, K>

§

impl<'a, K> !Send for KVStorePermissions<'a, K>

§

impl<'a, K> !Sync for KVStorePermissions<'a, K>

§

impl<'a, K> Unpin for KVStorePermissions<'a, K>

§

impl<'a, K> !UnwindSafe for KVStorePermissions<'a, K>

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
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.

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.