Skip to main content

FixedArray

Struct FixedArray 

Source
pub struct FixedArray<const TSIZE: usize, T: Sized> { /* private fields */ }
Expand description

A fixed-capacity array. This type is similar to DynamicArray, except its capacity is fixed at compile time, and doesn’t change at runtime.

Additionally this type does not require an allocator (the data is inlined inside the struct).

Implementations§

Source§

impl<const TSIZE: usize, T: Sized> FixedArray<TSIZE, T>

Source

pub const fn new() -> Self

Creates a new, empty FixedArray.

§Panics

This function will panic if the TSIZE is invalid, i.e. when either TSIZE is 0 or exceeds [Length::MAX_LENGTH].

Source

pub const fn length(&self) -> Length

Returns the length of the FixedArray.

Source

pub const fn is_empty(&self) -> bool

Source

pub const fn capacity(&self) -> Length

Returns the capacity of the FixedArray. This is TSIZE as [Length].

Source

pub const fn as_slice_const(&self) -> &[T]

Returns the FixedArray as immutable slice.

Source

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

Returns the FixedArray as mutable slice.

Trait Implementations§

Source§

impl<const TSIZE: usize, T: Sized> AsMut<[T]> for FixedArray<TSIZE, T>

Source§

fn as_mut(&mut self) -> &mut [T]

Converts this type into a mutable reference of the (usually inferred) input type.
Source§

impl<const TSIZE: usize, T: Sized> AsRef<[T]> for FixedArray<TSIZE, T>

Source§

fn as_ref(&self) -> &[T]

Converts this type into a shared reference of the (usually inferred) input type.
Source§

impl<const TSIZE: usize, T: Sized> Borrow<[T]> for FixedArray<TSIZE, T>

Source§

fn borrow(&self) -> &[T]

Immutably borrows from an owned value. Read more
Source§

impl<const TSIZE: usize, T: Sized> BorrowMut<[T]> for FixedArray<TSIZE, T>

Source§

fn borrow_mut(&mut self) -> &mut [T]

Mutably borrows from an owned value. Read more
Source§

impl<const TSIZE: usize, T: Sized + Clone> Clone for FixedArray<TSIZE, T>

Source§

fn clone(&self) -> Self

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl<const TSIZE: usize, T: Sized> Default for FixedArray<TSIZE, T>

Source§

fn default() -> Self

Returns the “default value” for a type. Read more
Source§

impl<const TSIZE: usize, T: Sized> Drop for FixedArray<TSIZE, T>

Source§

fn drop(&mut self)

Executes the destructor for this type. Read more
Source§

impl<const TSIZE: usize, T: Sized + Hash> Hash for FixedArray<TSIZE, T>

Source§

fn hash<H: Hasher>(&self, state: &mut H)

Feeds this value into the given Hasher. Read more
1.3.0 · Source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
Source§

impl<const TSIZE: usize, T: Sized> ImmutableArray<T> for FixedArray<TSIZE, T>

Source§

fn length(&self) -> Length

Returns array’s length as [Length].
Source§

fn capacity(&self) -> Length

Returns the current capacity for holding items in the array.
Source§

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

Represents the array as immutable slice.
Source§

fn is_empty(&self) -> bool

Returns true if array is empty, false otherwise. Should be consistent with self.length() == Length::ZERO check.
Source§

impl<const TSIZE: usize, T: Sized> Index<Length> for FixedArray<TSIZE, T>

Source§

type Output = T

The returned type after indexing.
Source§

fn index(&self, index: Length) -> &T

Performs the indexing (container[index]) operation. Read more
Source§

impl<const TSIZE: usize, T: Sized> IndexMut<Length> for FixedArray<TSIZE, T>

Source§

fn index_mut(&mut self, index: Length) -> &mut T

Performs the mutable indexing (container[index]) operation. Read more
Source§

impl<const TSIZE: usize, T: Sized> MutableArray<T> for FixedArray<TSIZE, T>

Source§

fn try_push_array<const TARRSIZE: usize>( &mut self, arr: [T; TARRSIZE], ) -> Result<(), ArrayError>

Pushes raw array to the array. Read more
Source§

fn try_push_slice(&mut self, slice: &[T]) -> Result<(), ArrayError>
where T: Clone,

Pushes slice to the array. This method requires Clone trait on T. Read more
Source§

fn try_pop(&mut self) -> Result<T, ArrayIsEmptyError>

Removes element from the top of the array. Read more
Source§

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

Represents the array as mutable slice.
Source§

fn pop(&mut self) -> T

Removes element from the top of the array. Read more
Source§

fn try_push(&mut self, value: T) -> Result<(), ArrayError>

Pushes a single element to the array. Read more
Source§

fn push_array<const TSIZE: usize>(&mut self, arr: [T; TSIZE])

Pushes raw array to the array. Read more
Source§

fn push_slice(&mut self, slice: &[T])
where T: Clone,

Pushes raw slice to the array. This method requires Clone trait on T. Read more
Source§

fn push(&mut self, value: T)

Pushes a single element to the array. Read more
Source§

impl<const TSIZE: usize, T: Sized + PartialEq, Rhs: AsRef<[T]>> PartialEq<Rhs> for FixedArray<TSIZE, T>

Source§

fn eq(&self, other: &Rhs) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl<const TSIZE: usize, T: ReprC + Sized> ReprC for FixedArray<TSIZE, T>

Source§

const CHECK: ()

This field is used for const checks only.
Source§

impl<const TSIZE: usize, T: Sized + Eq> Eq for FixedArray<TSIZE, T>

Auto Trait Implementations§

§

impl<const TSIZE: usize, T> Freeze for FixedArray<TSIZE, T>
where T: Freeze,

§

impl<const TSIZE: usize, T> RefUnwindSafe for FixedArray<TSIZE, T>
where T: RefUnwindSafe,

§

impl<const TSIZE: usize, T> Send for FixedArray<TSIZE, T>
where T: Send,

§

impl<const TSIZE: usize, T> Sync for FixedArray<TSIZE, T>
where T: Sync,

§

impl<const TSIZE: usize, T> Unpin for FixedArray<TSIZE, T>
where T: Unpin,

§

impl<const TSIZE: usize, T> UnsafeUnpin for FixedArray<TSIZE, T>
where T: UnsafeUnpin,

§

impl<const TSIZE: usize, T> UnwindSafe for FixedArray<TSIZE, T>
where T: UnwindSafe,

Blanket Implementations§

Source§

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

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

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

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where 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 T
where U: Into<T>,

Source§

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

Source§

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.