alternating_iter/
utils.rs1pub(crate) fn min_and_1(i: usize, j: usize, last_i: bool) -> (usize, bool) {
2 use core::cmp::Ordering;
3
4 match i.cmp(&j) {
5 Ordering::Less => (i, last_i),
6 Ordering::Equal => (i, false),
7 Ordering::Greater => (j, !last_i),
8 }
9}
10pub(crate) fn saturating((min, add_one): (usize, bool)) -> usize {
11 min.saturating_mul(2).saturating_add(add_one as usize)
12}
13pub(crate) fn checked((min, add_one): (usize, bool)) -> Option<usize> {
14 min.checked_mul(2)
15 .and_then(|min| min.checked_add(add_one as usize))
16}