fuel_merkle::storage

Trait StorageMutate

source
pub trait StorageMutate<Type>: StorageInspect<Type>
where Type: Mappable,
{ // Required methods fn replace( &mut self, key: &<Type as Mappable>::Key, value: &<Type as Mappable>::Value, ) -> Result<Option<<Type as Mappable>::OwnedValue>, Self::Error>; fn take( &mut self, key: &<Type as Mappable>::Key, ) -> Result<Option<<Type as Mappable>::OwnedValue>, Self::Error>; // Provided methods fn insert( &mut self, key: &<Type as Mappable>::Key, value: &<Type as Mappable>::Value, ) -> Result<(), Self::Error> { ... } fn remove( &mut self, key: &<Type as Mappable>::Key, ) -> Result<(), Self::Error> { ... } }
Expand description

Base storage trait for Fuel infrastructure.

Generic should implement Mappable trait with all storage type information.

Required Methods§

source

fn replace( &mut self, key: &<Type as Mappable>::Key, value: &<Type as Mappable>::Value, ) -> Result<Option<<Type as Mappable>::OwnedValue>, Self::Error>

Append Key->Value mapping to the storage.

If Key was already mappped to a value, return the replaced value as Ok(Some(Value)). Return Ok(None) otherwise.

source

fn take( &mut self, key: &<Type as Mappable>::Key, ) -> Result<Option<<Type as Mappable>::OwnedValue>, Self::Error>

Remove Key->Value mapping from the storage.

Return Ok(Some(Value)) if the value was present. If the key wasn’t found, return Ok(None).

Provided Methods§

source

fn insert( &mut self, key: &<Type as Mappable>::Key, value: &<Type as Mappable>::Value, ) -> Result<(), Self::Error>

Append Key->Value mapping to the storage.

source

fn remove(&mut self, key: &<Type as Mappable>::Key) -> Result<(), Self::Error>

Remove Key->Value mapping from the storage.

Implementations on Foreign Types§

source§

impl<'a, T, Type> StorageMutate<Type> for &'a mut T
where T: StorageMutate<Type> + ?Sized, Type: Mappable,

source§

fn insert( &mut self, key: &<Type as Mappable>::Key, value: &<Type as Mappable>::Value, ) -> Result<(), <&'a mut T as StorageInspect<Type>>::Error>

source§

fn replace( &mut self, key: &<Type as Mappable>::Key, value: &<Type as Mappable>::Value, ) -> Result<Option<<Type as Mappable>::OwnedValue>, <&'a mut T as StorageInspect<Type>>::Error>

source§

fn remove( &mut self, key: &<Type as Mappable>::Key, ) -> Result<(), <&'a mut T as StorageInspect<Type>>::Error>

source§

fn take( &mut self, key: &<Type as Mappable>::Key, ) -> Result<Option<<Type as Mappable>::OwnedValue>, <&'a mut T as StorageInspect<Type>>::Error>

Implementors§

source§

impl<Type> StorageMutate<Type> for StorageMap<Type>
where Type: Mappable, Type::Key: Eq + Hash, Type::OwnedKey: Eq + Hash + Borrow<Type::Key>,