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>

source

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

source

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

source

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

source

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

source

pub fn as_vec(&self) -> &Vec<T>

Obtain a reference to the underlying alloc::vec::Vec

source

pub unsafe fn as_vec_mut(&mut self) -> &mut Vec<T>

Get inner mutable vec

SAFETY:

You must not do anything that could realloc or increase the capacity. We want an exact upper limit.

This would not be memory unsafe, but would violate the invariants of FixedVec, which is supposed to have a fixed upper size.

source

pub fn as_slice(&self) -> &[T]

Obtain a reference to the current contents

source

pub fn as_slice_mut(&mut self) -> &mut [T]

Obtain a mutable reference to the current contents

source

pub fn clear(&mut self)

Clear the FixedVec

source

pub fn is_full(&self) -> bool

Is the FixedVec full?

Trait Implementations§

source§

impl<T: Send> Send for FixedVec<T>

source§

impl<T: Sync> Sync for FixedVec<T>

Auto Trait Implementations§

§

impl<T> RefUnwindSafe for FixedVec<T>where T: RefUnwindSafe,

§

impl<T> Unpin for FixedVec<T>where T: Unpin,

§

impl<T> UnwindSafe for FixedVec<T>where T: UnwindSafe,

Blanket Implementations§

source§

impl<T> Any for Twhere T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere 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.

§

impl<T> Instrument for T

§

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

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

fn in_current_span(self) -> Instrumented<Self>

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

§

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 Twhere U: TryFrom<T>,

§

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