[][src]Trait tinyvec::Array

pub trait Array {
    type Item: Default;

    const CAPACITY: usize;

    fn as_slice(&self) -> &[Self::Item];
fn as_slice_mut(&mut self) -> &mut [Self::Item]; }

A trait for types that are an array.

An "array", for our purposes, has the following properties:

  • Owns some number of elements.
  • The element type can be generic, but must implement Default.
  • The capacity is fixed at compile time, based on the implementing type.
  • You can get a shared or mutable slice to the elements.

You are generally not expected to need to implement this yourself. It is already implemented for all the major array lengths (0..=32 and the powers of 2 up to 4,096). Additional lengths can easily be added upon request.

Safety Reminder

Just a reminder: this trait is 100% safe, which means that unsafe code must not rely on an instance of this trait being correct.

Associated Types

type Item: Default

The type of the items in the thing.

Loading content...

Associated Constants

const CAPACITY: usize

The number of slots in the thing.

Loading content...

Required methods

fn as_slice(&self) -> &[Self::Item]

Gives a shared slice over the whole thing.

A correct implementation will return a slice with a length equal to the CAPACITY value.

fn as_slice_mut(&mut self) -> &mut [Self::Item]

Gives a unique slice over the whole thing.

A correct implementation will return a slice with a length equal to the CAPACITY value.

Loading content...

Implementors

impl<T: Default, const N: usize> Array for [T; N][src]

type Item = T

Loading content...