konst::slice

Function get_range

Source
pub const fn get_range<T>(slice: &[T], start: usize, end: usize) -> Option<&[T]>
Expand description

A const equivalent of slice.get(start..end).

§Alternatives

For a const equivalent of slice.get(start..) there’s get_from.

For a const equivalent of slice.get(..end) there’s get_up_to.

§Example

use konst::slice;

const FIBB: &[u16] = &[3, 5, 8, 13, 21, 34, 55, 89];

const TWO: Option<&[u16]> = slice::get_range(FIBB, 2, 4);
const FOUR: Option<&[u16]> = slice::get_range(FIBB, 4, 7);
const ALL: Option<&[u16]> = slice::get_range(FIBB, 0, 8);
const EMPTY: Option<&[u16]> = slice::get_range(FIBB, 0, 0);
const NONE: Option<&[u16]> = slice::get_range(FIBB, 0, 1000);

assert_eq!(TWO, Some(&[8, 13][..]));
assert_eq!(FOUR, Some(&[21, 34, 55][..]));
assert_eq!(ALL, Some(FIBB));
assert_eq!(EMPTY, Some(&[][..]));
assert_eq!(NONE, None);