Crate generic_array [] [src]

This crate implements a structure that can be used as a generic array type.use Core Rust array types [T; N] can't be used generically with respect to N, so for example this:

struct Foo<T, N> {
    data: [T; N]
}

won't work.

generic-array exports a GenericArray<T,N> type, which lets the above be implemented as:

struct Foo<T, N: ArrayLength<T>> {
    data: GenericArray<T,N>
}

The ArrayLength<T> trait is implemented by default for unsigned integer types from typenum.

For ease of use, an arr! macro is provided - example below:

let array = arr![u32; 1, 2, 3];
assert_eq!(array[2], 3);

Reexports

pub extern crate typenum;
pub use iter::GenericArrayIter;

Modules

arr
iter

Macros

arr

Macro allowing for easy generation of Generic Arrays. Example: let test = arr![u32; 1, 2, 3];

arr_impl

Proper implementation of arr!

Structs

GenericArray

Struct representing a generic array - GenericArray<T, N> works like [T; N]

GenericArrayImplEven

Internal type used to generate a struct of appropriate size

GenericArrayImplOdd

Internal type used to generate a struct of appropriate size

Traits

ArrayLength

Trait making GenericArray work, marking types to be used as length of an array

Functions

transmute

Reinterprets the bits of a value of one type as another type.