Struct mnemos_alloc::containers::FixedVec
source · pub struct FixedVec<T> {
inner: Vec<T>,
}
Expand description
A Vec
with a fixed upper size
Semantically, FixedVec works basically the same as alloc::vec::Vec, however FixedVec will NOT ever reallocate to increase size. In practice, this acts like a heap allocated version of heapless’ Vec type.
Fields§
§inner: Vec<T>
Implementations§
source§impl<T> FixedVec<T>
impl<T> FixedVec<T>
sourcepub fn try_new(capacity: usize) -> Option<Self>
pub fn try_new(capacity: usize) -> Option<Self>
Try to allocate a new FixedVec with storage for UP TO capacity
items.
Returns None if the allocation does not succeed immediately.
Panics if the len is zero, or large enough that creating the layout would fail
sourcepub async fn new(capacity: usize) -> Self
pub async fn new(capacity: usize) -> Self
Try to allocate a new FixedVec with storage for UP TO capacity
items.
Will not return until allocation succeeds.
Panics if the len is zero, or large enough that creating the layout would fail
sourcepub fn try_push(&mut self, t: T) -> Result<(), T>
pub fn try_push(&mut self, t: T) -> Result<(), T>
Attempt to push an item into the fixed vec.
Returns an error if the fixed vec is full
sourcepub fn try_extend_from_slice(&mut self, sli: &[T]) -> Result<(), ()>where
T: Clone,
pub fn try_extend_from_slice(&mut self, sli: &[T]) -> Result<(), ()>where
T: Clone,
Attempt to push an item into the fixed vec.
Returns an error if the slice would not fit in the capacity. If an error is returned, the contents of the FixedVec is unchanged
sourcepub fn as_vec(&self) -> &Vec<T>
pub fn as_vec(&self) -> &Vec<T>
Obtain a reference to the underlying alloc::vec::Vec
sourcepub unsafe fn as_vec_mut(&mut self) -> &mut Vec<T>
pub unsafe fn as_vec_mut(&mut self) -> &mut Vec<T>
sourcepub fn retain<F>(&mut self, f: F)
pub fn retain<F>(&mut self, f: F)
Retains only the elements specified by the predicate.
In other words, remove all elements e
for which f(&e)
returns false
.
This method operates in place, visiting each element exactly once in the
original order, and preserves the order of the retained elements.
This method is identical to the
Vec::retain
method in liballoc
.
sourcepub fn retain_mut<F>(&mut self, f: F)
pub fn retain_mut<F>(&mut self, f: F)
Retains only the elements specified by the predicate, passing a mutable reference to it.
In other words, remove all elements e
such that f(&mut e)
returns false
.
This method operates in place, visiting each element exactly once in the
original order, and preserves the order of the retained elements.
This method is identical to the
Vec::retain_mut
method in liballoc
.
sourcepub fn as_slice_mut(&mut self) -> &mut [T]
pub fn as_slice_mut(&mut self) -> &mut [T]
Obtain a mutable reference to the current contents
sourcepub fn clear(&mut self)
pub fn clear(&mut self)
Clear the FixedVec
This method is identical to the Vec::clear
method in liballoc
.
sourcepub fn capacity(&self) -> usize
pub fn capacity(&self) -> usize
Returns the total capacity in this FixedVec
.
This method is identical to the
Vec::capacity
method in liballoc
.