Crate generic_array[−][src]
This crate implements a structure that can be used as a generic array type.
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:
use generic_array::{ArrayLength, GenericArray}; struct Foo<T, N: ArrayLength<T>> { data: GenericArray<T,N> }
The ArrayLength<T> trait is implemented by default for
unsigned integer types from
typenum:
use generic_array::typenum::U5; struct Foo<N: ArrayLength<i32>> { data: GenericArray<i32, N> } let foo = Foo::<U5>{data: GenericArray::default()};
For example, GenericArray<T, U5> would work almost like [T; 5]:
use generic_array::typenum::U5; struct Foo<T, N: ArrayLength<T>> { data: GenericArray<T, N> } let foo = Foo::<i32, U5>{data: GenericArray::default()};
For ease of use, an arr! macro is provided - example below:
let array = arr![u32; 1, 2, 3]; assert_eq!(array[2], 3);
Re-exports
pub extern crate typenum; | |
pub use self::iter::GenericArrayIter; |
Modules
| arr | Implementation for |
| functional | Functional programming with generic sequences |
| iter |
|
| sequence | Useful traits for manipulating sequences of data stored in |
Macros
| arr | Macro allowing for easy generation of Generic Arrays.
Example: |
Structs
| GenericArray | Struct representing a generic array - |
Traits
| ArrayLength | Trait making |