pub struct StateVec<V, Codec = BorshCodec> { /* private fields */ }Implementations§
source§impl<V> StateVec<V>where
BorshCodec: StateValueCodec<V>,
impl<V> StateVec<V>where BorshCodec: StateValueCodec<V>,
sourcepub fn new(prefix: Prefix) -> Self
pub fn new(prefix: Prefix) -> Self
Crates a new StateVec with the given prefix and the default
StateValueCodec (i.e. BorshCodec).
source§impl<V, Codec> StateVec<V, Codec>where
Codec: StateCodec + Clone,
Codec::ValueCodec: StateValueCodec<V> + StateValueCodec<usize>,
Codec::KeyCodec: StateKeyCodec<usize>,
impl<V, Codec> StateVec<V, Codec>where Codec: StateCodec + Clone, Codec::ValueCodec: StateValueCodec<V> + StateValueCodec<usize>, Codec::KeyCodec: StateKeyCodec<usize>,
sourcepub fn with_codec(prefix: Prefix, codec: Codec) -> Self
pub fn with_codec(prefix: Prefix, codec: Codec) -> Self
Creates a new StateVec with the given prefix and codec.
sourcepub fn set<S: Storage>(
&self,
index: usize,
value: &V,
working_set: &mut WorkingSet<S>
) -> Result<(), Error>
pub fn set<S: Storage>( &self, index: usize, value: &V, working_set: &mut WorkingSet<S> ) -> Result<(), Error>
Sets a value in the StateVec.
If the index is out of bounds, returns an error.
To push a value to the end of the StateVec, use StateVec::push.
sourcepub fn get<S: Storage>(
&self,
index: usize,
working_set: &mut WorkingSet<S>
) -> Option<V>
pub fn get<S: Storage>( &self, index: usize, working_set: &mut WorkingSet<S> ) -> Option<V>
Returns the value for the given index.
sourcepub fn get_or_err<S: Storage>(
&self,
index: usize,
working_set: &mut WorkingSet<S>
) -> Result<V, Error>
pub fn get_or_err<S: Storage>( &self, index: usize, working_set: &mut WorkingSet<S> ) -> Result<V, Error>
Returns the value for the given index. If the index is out of bounds, returns an error. If the value is absent, returns an error.
sourcepub fn len<S: Storage>(&self, working_set: &mut WorkingSet<S>) -> usize
pub fn len<S: Storage>(&self, working_set: &mut WorkingSet<S>) -> usize
Returns the length of the StateVec.
sourcepub fn push<S: Storage>(&self, value: &V, working_set: &mut WorkingSet<S>)
pub fn push<S: Storage>(&self, value: &V, working_set: &mut WorkingSet<S>)
Pushes a value to the end of the StateVec.
sourcepub fn pop<S: Storage>(&self, working_set: &mut WorkingSet<S>) -> Option<V>
pub fn pop<S: Storage>(&self, working_set: &mut WorkingSet<S>) -> Option<V>
Pops a value from the end of the StateVec and returns it.
pub fn clear<S: Storage>(&self, working_set: &mut WorkingSet<S>)
sourcepub fn set_all<S: Storage>(
&self,
values: Vec<V>,
working_set: &mut WorkingSet<S>
)
pub fn set_all<S: Storage>( &self, values: Vec<V>, working_set: &mut WorkingSet<S> )
sourcepub fn iter<'a, 'ws, S: Storage>(
&'a self,
working_set: &'ws mut WorkingSet<S>
) -> StateVecIter<'a, 'ws, V, Codec, S>
pub fn iter<'a, 'ws, S: Storage>( &'a self, working_set: &'ws mut WorkingSet<S> ) -> StateVecIter<'a, 'ws, V, Codec, S>
Returns an iterator over all the values in the StateVec.
pub fn last<S: Storage>(&self, working_set: &mut WorkingSet<S>) -> Option<V>
Trait Implementations§
source§impl<V, Codec> BorshDeserialize for StateVec<V, Codec>where
PhantomData<V>: BorshDeserialize,
Prefix: BorshDeserialize,
StateValue<usize, Codec>: BorshDeserialize,
StateMap<usize, V, Codec>: BorshDeserialize,
impl<V, Codec> BorshDeserialize for StateVec<V, Codec>where PhantomData<V>: BorshDeserialize, Prefix: BorshDeserialize, StateValue<usize, Codec>: BorshDeserialize, StateMap<usize, V, Codec>: BorshDeserialize,
fn deserialize_reader<R: Read>(reader: &mut R) -> Result<Self, Error>
source§fn deserialize(buf: &mut &[u8]) -> Result<Self, Error>
fn deserialize(buf: &mut &[u8]) -> Result<Self, Error>
Deserializes this instance from a given slice of bytes.
Updates the buffer to point at the remaining bytes.
source§fn try_from_slice(v: &[u8]) -> Result<Self, Error>
fn try_from_slice(v: &[u8]) -> Result<Self, Error>
Deserialize this instance from a slice of bytes.
fn try_from_reader<R>(reader: &mut R) -> Result<Self, Error>where R: Read,
source§impl<V, Codec> BorshSerialize for StateVec<V, Codec>where
PhantomData<V>: BorshSerialize,
Prefix: BorshSerialize,
StateValue<usize, Codec>: BorshSerialize,
StateMap<usize, V, Codec>: BorshSerialize,
impl<V, Codec> BorshSerialize for StateVec<V, Codec>where PhantomData<V>: BorshSerialize, Prefix: BorshSerialize, StateValue<usize, Codec>: BorshSerialize, StateMap<usize, V, Codec>: BorshSerialize,
source§impl<'de, V, Codec> Deserialize<'de> for StateVec<V, Codec>where
V: Deserialize<'de>,
Codec: Deserialize<'de>,
impl<'de, V, Codec> Deserialize<'de> for StateVec<V, Codec>where V: Deserialize<'de>, Codec: Deserialize<'de>,
source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where __D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
source§impl<V: PartialEq, Codec: PartialEq> PartialEq<StateVec<V, Codec>> for StateVec<V, Codec>
impl<V: PartialEq, Codec: PartialEq> PartialEq<StateVec<V, Codec>> for StateVec<V, Codec>
impl<V, Codec> StructuralPartialEq for StateVec<V, Codec>
Auto Trait Implementations§
impl<V, Codec> RefUnwindSafe for StateVec<V, Codec>where Codec: RefUnwindSafe, V: RefUnwindSafe,
impl<V, Codec> Send for StateVec<V, Codec>where Codec: Send, V: Send,
impl<V, Codec> Sync for StateVec<V, Codec>where Codec: Sync, V: Sync,
impl<V, Codec> Unpin for StateVec<V, Codec>where Codec: Unpin, V: Unpin,
impl<V, Codec> UnwindSafe for StateVec<V, Codec>where Codec: UnwindSafe, V: UnwindSafe,
Blanket Implementations§
source§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