Crates.io | array-section |
lib.rs | array-section |
version | 0.2.3 |
source | src |
created_at | 2024-05-05 08:19:08.143309 |
updated_at | 2024-11-23 18:54:32.208261 |
description | An array where only a (contiguous) subarray may be viewed or operated on |
homepage | |
repository | https://github.com/JSorngard/array-section |
max_upload_size | |
id | 1230088 |
size | 40,481 |
When you want to return a buffer of unknown size (but smaller than some limit) from/in a const context. This crate defines a type backed by an array where only a (contiguous) subsection of the array 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]);
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 array section into Vec
s and Box
ed slices.