pub fn bounds_within<R: RangeBounds<usize>>(r: R, len: usize) -> Range<usize>
区間を配列サイズに収まるように丸める。
与えられた区間 r と 0..len の共通部分を、有界な半開区間として返す。
r
0..len
終端が陽に与えられたとき(有限のとき)は out of bounds でもそのまま返す。 潜在的なバグの原因を見逃すのを防ぎたいので。
use nekolib::utils::bounds_within; assert_eq!(bounds_within(.., 7), 0..7); assert_eq!(bounds_within(..=4, 7), 0..5);