Struct spl_stake_pool::big_vec::BigVec
source · [−]pub struct BigVec<'data> {
pub data: &'data mut [u8],
}Expand description
Contains easy to use utilities for a big vector of Borsh-compatible types, to avoid managing the entire struct on-chain and blow through stack limits.
Fields
data: &'data mut [u8]Underlying data buffer, pieces of which are serialized
Implementations
sourceimpl<'data> BigVec<'data>
impl<'data> BigVec<'data>
sourcepub fn retain<T: Pack>(
&mut self,
predicate: fn(_: &[u8]) -> bool
) -> Result<(), ProgramError>
pub fn retain<T: Pack>(
&mut self,
predicate: fn(_: &[u8]) -> bool
) -> Result<(), ProgramError>
Retain all elements that match the provided function, discard all others
sourcepub fn deserialize_mut_slice<T: Pack>(
&mut self,
skip: usize,
len: usize
) -> Result<Vec<&'data mut T>, ProgramError>
pub fn deserialize_mut_slice<T: Pack>(
&mut self,
skip: usize,
len: usize
) -> Result<Vec<&'data mut T>, ProgramError>
Extracts a slice of the data types
sourcepub fn push<T: Pack>(&mut self, element: T) -> Result<(), ProgramError>
pub fn push<T: Pack>(&mut self, element: T) -> Result<(), ProgramError>
Add new element to the end
sourcepub fn iter<'vec, T: Pack>(&'vec self) -> Iter<'data, 'vec, T>ⓘNotable traits for Iter<'data, 'vec, T>impl<'data, 'vec, T: Pack + 'data> Iterator for Iter<'data, 'vec, T> type Item = &'data T;
pub fn iter<'vec, T: Pack>(&'vec self) -> Iter<'data, 'vec, T>ⓘNotable traits for Iter<'data, 'vec, T>impl<'data, 'vec, T: Pack + 'data> Iterator for Iter<'data, 'vec, T> type Item = &'data T;
Get an iterator for the type provided
sourcepub fn iter_mut<'vec, T: Pack>(&'vec mut self) -> IterMut<'data, 'vec, T>ⓘNotable traits for IterMut<'data, 'vec, T>impl<'data, 'vec, T: Pack + 'data> Iterator for IterMut<'data, 'vec, T> type Item = &'data mut T;
pub fn iter_mut<'vec, T: Pack>(&'vec mut self) -> IterMut<'data, 'vec, T>ⓘNotable traits for IterMut<'data, 'vec, T>impl<'data, 'vec, T: Pack + 'data> Iterator for IterMut<'data, 'vec, T> type Item = &'data mut T;
Get a mutable iterator for the type provided
Auto Trait Implementations
impl<'data> RefUnwindSafe for BigVec<'data>
impl<'data> Send for BigVec<'data>
impl<'data> Sync for BigVec<'data>
impl<'data> Unpin for BigVec<'data>
impl<'data> !UnwindSafe for BigVec<'data>
Blanket Implementations
impl<T> AbiExample for T
impl<T> AbiExample for T
default fn example() -> T
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more