generic-array alternatives and similar packages
Based on the "bluss/rust-itertools —" category.
Alternatively, view generic-array alternatives based on common mentions on social networks and blogs.
Collect and Analyze Billions of Data Points in Real Time
Do you think we are missing an alternative of generic-array or a related project?
README
generic-array
This crate implements generic array types for Rust.
Requires minumum Rust version of 1.36.0, or 1.41.0 for From<[T; N]>
implementations
Usage
The Rust arrays [T; N]
are problematic in that they can't be used generically with respect to N
, so for example this won't work:
struct Foo<N> {
data: [i32; N]
}
generic-array defines a new trait ArrayLength<T>
and a struct GenericArray<T, N: ArrayLength<T>>
, which let the above be implemented as:
struct Foo<N: ArrayLength<i32>> {
data: GenericArray<i32, N>
}
The ArrayLength<T>
trait is implemented by default for unsigned integer types from typenum crate:
use generic_array::typenum::U5;
struct Foo<N: ArrayLength<i32>> {
data: GenericArray<i32, N>
}
fn main() {
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>
}
fn main() {
let foo = Foo::<i32, U5>{data: GenericArray::default()};
}
In version 0.1.1 an arr!
macro was introduced, allowing for creation of arrays as shown below:
let array = arr![u32; 1, 2, 3];
assert_eq!(array[2], 3);