/array_ext

Extra functionality for Rust arrays

Primary LanguageRustMIT LicenseMIT

array_ext

Extra functionality for Rust arrays.

Documentation

Examples

The trait Array provides fixed-size array generics:

use array_ext::Array;

fn average<T: Array<f32>>(arr: T) -> f32
{
    let n = arr.len() as f32;
    arr.foldl(0.0, |acc, val| acc + val) / n
}

assert!((average([8.96, 3.14, 17.9]) - 10.0).abs() < f32::EPSILON);

Some methods, like zip_with, are provided by the sized ArrayN trait that allows doing full [T; N] -> [U; N] mapping. The base Array trait can only do [T; N] -> [T; N] mapping.

This was originally made as workaround for the lack of const generics, but since v0.4 everything is implemented using const generics.