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 Vec
s and Box
ed slices.
Structs§
- Array
Section - An array where only a section of the data may be viewed, as the other data may e.g. not uphold some invariant.
- Array
Section Into Iter - Created by the
into_iter
function onArraySection
, see it for more information. - Array
Section Iter - Created by the
iter
function onArraySection
, see it for more information. - Array
Section Iter Mut - Mutable borrowing iterator created by the
ArraySection::iter_mut()
function, see it for more information. - TryFrom
Array Section Error - Returned when a
TryFrom
conversion of anArraySection
into an array fails.