Mapping

Struct Mapping 

Source
pub struct Mapping<K, V> { /* private fields */ }
Expand description

Data structure for storing key-value pairs.

Implementations§

Source§

impl<K: ToBytes, V: FromBytes + CLTyped> Mapping<K, V>

Source

pub fn get(&self, key: &K) -> Option<V>

Retrieves the value associated with the given key.

Returns an Option<V> representing the value associated with the key, or None if the key is not found.

Source§

impl<K: ToBytes, V: FromBytes + CLTyped + Default> Mapping<K, V>

Source

pub fn get_or_default(&self, key: &K) -> V

Retrieves the value associated with the given key from the mapping. If the key does not exist, returns the default value of type V.

Source§

impl<K: ToBytes, V: ToBytes + CLTyped> Mapping<K, V>

Source

pub fn set(&mut self, key: &K, value: V)

Sets the value associated with the given key in the mapping.

Source§

impl<K: ToBytes, V: Module> Mapping<K, V>

Source

pub fn module(&self, key: &K) -> SubModule<V>

Retrieves the module associated with the given key.

A SubModule instance containing the module associated with the key.

Source§

impl<K: ToBytes, V: ToBytes + FromBytes + CLTyped + OverflowingAdd + Default> Mapping<K, V>

Source

pub fn add(&mut self, key: &K, value: V)

Utility function that gets the current value and adds the passed value and sets the new value to the storage.

If the operation fails due to overflow, the currently executing contract reverts.

Source§

impl<K: ToBytes, V: ToBytes + FromBytes + CLTyped + OverflowingSub + Default + Debug + PartialOrd> Mapping<K, V>

Source

pub fn subtract(&mut self, key: &K, value: V)

Utility function that gets the current value and subtracts the passed value and sets the new value to the storage.

If the operation fails due to overflow, the currently executing contract reverts.

Trait Implementations§

Source§

impl<K: ToBytes, V> ModuleComponent for Mapping<K, V>

Source§

fn instance(env: Rc<ContractEnv>, index: u8) -> Self

Creates a new instance of Mapping with the given environment and index.

Source§

impl<K: ToBytes, V> Revertible for Mapping<K, V>

Source§

fn revert<E: Into<OdraError>>(&self, e: E) -> !

Reverts the contract execution with the given error.
Source§

impl<K: ToBytes, V> ModulePrimitive for Mapping<K, V>

Auto Trait Implementations§

§

impl<K, V> Freeze for Mapping<K, V>

§

impl<K, V> !RefUnwindSafe for Mapping<K, V>

§

impl<K, V> !Send for Mapping<K, V>

§

impl<K, V> !Sync for Mapping<K, V>

§

impl<K, V> Unpin for Mapping<K, V>
where K: Unpin, V: Unpin,

§

impl<K, V> !UnwindSafe for Mapping<K, V>

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<M> HasEvents for M
where M: ModulePrimitive,

Source§

fn events() -> Vec<Event>

Returns a list of Events used by the contract.
Source§

fn event_schemas() -> BTreeMap<String, Schema>

Returns a map of event schemas used by the contract.
Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
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> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

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

Source§

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

Source§

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

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

Source§

fn vzip(self) -> V

Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more