Struct scrypto::component::kv_store::KeyValueStore
source · pub struct KeyValueStore<K: ScryptoEncode + ScryptoDecode + ScryptoDescribe, V: ScryptoEncode + ScryptoDecode + ScryptoDescribe> {
pub id: Own,
pub key: PhantomData<K>,
pub value: PhantomData<V>,
}
Expand description
A scalable key-value map which loads entries on demand.
Fields§
§id: Own
§key: PhantomData<K>
§value: PhantomData<V>
Implementations§
source§impl<K: ScryptoEncode + ScryptoDecode + ScryptoDescribe, V: ScryptoEncode + ScryptoDecode + ScryptoDescribe> KeyValueStore<K, V>
impl<K: ScryptoEncode + ScryptoDecode + ScryptoDescribe, V: ScryptoEncode + ScryptoDecode + ScryptoDescribe> KeyValueStore<K, V>
sourcepub fn get(&self, key: &K) -> Option<KeyValueEntryRef<'_, V>>
pub fn get(&self, key: &K) -> Option<KeyValueEntryRef<'_, V>>
Returns the value that is associated with the given key.
pub fn get_mut(&mut self, key: &K) -> Option<KeyValueEntryRefMut<'_, V>>
Trait Implementations§
source§impl<K: ScryptoEncode + ScryptoDecode + ScryptoDescribe, V: ScryptoEncode + ScryptoDecode + ScryptoDescribe> Categorize<ScryptoCustomValueKind> for KeyValueStore<K, V>
impl<K: ScryptoEncode + ScryptoDecode + ScryptoDescribe, V: ScryptoEncode + ScryptoDecode + ScryptoDescribe> Categorize<ScryptoCustomValueKind> for KeyValueStore<K, V>
source§impl<K: ScryptoEncode + ScryptoDecode + ScryptoDescribe, V: ScryptoEncode + ScryptoDecode + ScryptoDescribe, D: Decoder<ScryptoCustomValueKind>> Decode<ScryptoCustomValueKind, D> for KeyValueStore<K, V>
impl<K: ScryptoEncode + ScryptoDecode + ScryptoDescribe, V: ScryptoEncode + ScryptoDecode + ScryptoDescribe, D: Decoder<ScryptoCustomValueKind>> Decode<ScryptoCustomValueKind, D> for KeyValueStore<K, V>
source§fn decode_body_with_value_kind(
decoder: &mut D,
value_kind: ValueKind<ScryptoCustomValueKind>
) -> Result<Self, DecodeError>
fn decode_body_with_value_kind( decoder: &mut D, value_kind: ValueKind<ScryptoCustomValueKind> ) -> Result<Self, DecodeError>
Decodes the type from the decoder, which should match a preloaded value kind. Read more
source§impl<K: ScryptoEncode + ScryptoDecode + ScryptoDescribe, V: ScryptoEncode + ScryptoDecode + ScryptoDescribe> Describe<ScryptoCustomTypeKind> for KeyValueStore<K, V>
impl<K: ScryptoEncode + ScryptoDecode + ScryptoDescribe, V: ScryptoEncode + ScryptoDecode + ScryptoDescribe> Describe<ScryptoCustomTypeKind> for KeyValueStore<K, V>
source§const TYPE_ID: RustTypeId = _
const TYPE_ID: RustTypeId = _
The
TYPE_ID
should give a unique identifier for its SBOR schema type.
An SBOR schema type capture details about the SBOR payload, how it should be interpreted, validated and displayed. Read moresource§fn type_data() -> TypeData<ScryptoCustomTypeKind, RustTypeId>
fn type_data() -> TypeData<ScryptoCustomTypeKind, RustTypeId>
Returns the local schema for the given type. Read more
source§fn add_all_dependencies(aggregator: &mut TypeAggregator<C>)
fn add_all_dependencies(aggregator: &mut TypeAggregator<C>)
For each type referenced in
get_local_type_data
, we need to ensure that the type and all of its own references
get added to the aggregator. Read moresource§impl<K: ScryptoEncode + ScryptoDecode + ScryptoDescribe, V: ScryptoEncode + ScryptoDecode + ScryptoDescribe, E: Encoder<ScryptoCustomValueKind>> Encode<ScryptoCustomValueKind, E> for KeyValueStore<K, V>
impl<K: ScryptoEncode + ScryptoDecode + ScryptoDescribe, V: ScryptoEncode + ScryptoDecode + ScryptoDescribe, E: Encoder<ScryptoCustomValueKind>> Encode<ScryptoCustomValueKind, E> for KeyValueStore<K, V>
source§fn encode_value_kind(&self, encoder: &mut E) -> Result<(), EncodeError>
fn encode_value_kind(&self, encoder: &mut E) -> Result<(), EncodeError>
Encodes the SBOR value’s kind to the encoder
source§fn encode_body(&self, encoder: &mut E) -> Result<(), EncodeError>
fn encode_body(&self, encoder: &mut E) -> Result<(), EncodeError>
Encodes the SBOR body of the type to the encoder. Read more
Auto Trait Implementations§
impl<K, V> RefUnwindSafe for KeyValueStore<K, V>where K: RefUnwindSafe, V: RefUnwindSafe,
impl<K, V> Send for KeyValueStore<K, V>where K: Send, V: Send,
impl<K, V> Sync for KeyValueStore<K, V>where K: Sync, V: Sync,
impl<K, V> Unpin for KeyValueStore<K, V>where K: Unpin, V: Unpin,
impl<K, V> UnwindSafe for KeyValueStore<K, V>where K: UnwindSafe, V: UnwindSafe,
Blanket Implementations§
§impl<U> As for U
impl<U> As for U
§fn as_<T>(self) -> Twhere
T: CastFrom<U>,
fn as_<T>(self) -> Twhere T: CastFrom<U>,
Casts
self
to type T
. The semantics of numeric casting with the as
operator are followed, so <T as As>::as_::<U>
can be used in the same way as T as U
for numeric conversions. Read moresource§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more