Skip to main content

InlineFixedArray

Struct InlineFixedArray 

Source
pub struct InlineFixedArray<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. The “Inline” prefix indicates that the data is stored inside the struct itself, meaning its size depends on TSIZE.

In particular this type does not require an allocator.

Implementations§

Source§

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

Source

pub const fn new() -> Self

Creates a new, empty InlineFixedArray.

§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 InlineFixedArray.

Source

pub const fn is_empty(&self) -> bool

Source

pub const fn capacity(&self) -> Length

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

Source

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

Returns the InlineFixedArray as immutable slice.

Source

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

Returns the InlineFixedArray as mutable slice.

Trait Implementations§

Source§

impl<const TSIZE: usize, T: Sized> AsMut<[T]> for InlineFixedArray<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 InlineFixedArray<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 InlineFixedArray<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 InlineFixedArray<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 + TryClone> Clone for InlineFixedArray<TSIZE, T>

Source§

fn clone(&self) -> Self

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

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

Performs copy-assignment from source. Read more
Source§

impl<const TSIZE: usize, T: Debug + Sized> Debug for InlineFixedArray<TSIZE, T>

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

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

Source§

fn default() -> Self

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

impl<'de, const CAPACITY: usize, T: Deserialize<'de>> Deserialize<'de> for InlineFixedArray<CAPACITY, T>

Available on crate feature serde only.
Source§

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<const TSIZE: usize, T: Sized> Drop for InlineFixedArray<TSIZE, T>

Source§

fn drop(&mut self)

Executes the destructor for this type. Read more
Source§

fn pin_drop(self: Pin<&mut Self>)

🔬This is a nightly-only experimental API. (pin_ergonomics)
Execute the destructor for this type, but different to Drop::drop, it requires self to be pinned. Read more
Source§

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

Source§

impl<const TSIZE: usize, T: Sized + Hash> Hash for InlineFixedArray<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 InlineFixedArray<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 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> MutableArray<T> for InlineFixedArray<TSIZE, T>

Source§

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

Tries to push raw array to the array. Read more
Source§

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

Tries to push 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 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: TryClone,

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 InlineFixedArray<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 (const: unstable) · 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 InlineFixedArray<TSIZE, T>

Source§

const CHECK: ()

This field is used for const checks only.
Source§

impl<const TSIZE: usize, T: Send + Sized> Send for InlineFixedArray<TSIZE, T>

Source§

impl<const CAPACITY: usize, T: Serialize> Serialize for InlineFixedArray<CAPACITY, T>

Available on crate feature serde only.
Source§

fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
where S: Serializer,

Serialize this value into the given Serde serializer. Read more
Source§

impl<const TSIZE: usize, T: Sync + Sized> Sync for InlineFixedArray<TSIZE, T>

Source§

impl<const TSIZE: usize, T: Sized + TryClone> TryClone for InlineFixedArray<TSIZE, T>

Source§

type Error = ArrayTryCloneError

Source§

fn try_clone(&self) -> Result<Self, Self::Error>

Tries to clone the type. Read more

Auto Trait Implementations§

§

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

§

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

§

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

§

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

§

impl<const TSIZE: usize, T> UnwindSafe for InlineFixedArray<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> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,

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> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
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.