Crate array_section

Source
Expand description

An ArraySection is an array where only a (contiguous) subsection of its data may be viewed.

This can be useful in const functions that wish to return an array of size N, but with some elements potentially unused.

The crate is no_std compatible.

/// Returns an array of the square numbers smaller than both x and N.
const fn squares_smaller_than<const N: usize>(x: usize) -> ArraySection<usize, N> {
    let mut i = 0;
    let mut ans = [0; N];
    while i * i < N && i * i < x {
        ans[i] = i * i;
        i += 1;
    }
    ArraySection::new(ans, 0..i)
}
assert_eq!(squares_smaller_than::<10>(16), [0, 1, 4, 9]);

§Feature flags

std: lets the error type provide a Backtrace. When this feature is disabled the crate is no_std compatible. Enables the alloc feature.

alloc: enables conversion of the section into Vecs and Boxed slices.

Structs§

ArraySection
An array where only a section of the data may be viewed, as the other data may e.g. not uphold some invariant.
ArraySectionIntoIter
Created by the into_iter function on ArraySection, see it for more information.
ArraySectionIter
Created by the iter function on ArraySection, see it for more information.
ArraySectionIterMut
Mutable borrowing iterator created by the ArraySection::iter_mut() function, see it for more information.
TryFromArraySectionError
Returned when a TryFrom conversion of an ArraySection into an array fails.