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

Base storage trait for Fuel infrastructure.

Generic should implement Mappable trait with all storage type information.

Required Methods§

source

fn insert( &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 remove( &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).

Implementations on Foreign Types§

source§

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

source§

fn insert( &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<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>,