Function nekolib::utils::bounds_within

source ·
pub fn bounds_within<R: RangeBounds<usize>>(r: R, len: usize) -> Range<usize>
Expand description

区間を配列サイズに収まるように丸める。

与えられた区間 r0..len の共通部分を、有界な半開区間として返す。

Notes

終端が陽に与えられたとき(有限のとき)は out of bounds でもそのまま返す。 潜在的なバグの原因を見逃すのを防ぎたいので。

Examples

use nekolib::utils::bounds_within;

assert_eq!(bounds_within(.., 7), 0..7);
assert_eq!(bounds_within(..=4, 7), 0..5);