pub(crate) fn bounds_to_usize(
    left: Bound<&usize>,
    right: Bound<&usize>,
    count_elements: usize,
) -> (usize, usize) {
    match (left, right) {
        (Bound::Included(x), Bound::Included(y)) => (*x, y + 1),
        (Bound::Included(x), Bound::Excluded(y)) => (*x, *y),
        (Bound::Included(x), Bound::Unbounded) => (*x, count_elements),
        (Bound::Unbounded, Bound::Unbounded) => (0, count_elements),
        (Bound::Unbounded, Bound::Included(y)) => (0, y + 1),
        (Bound::Unbounded, Bound::Excluded(y)) => (0, *y),
        (Bound::Excluded(_), Bound::Unbounded)
        | (Bound::Excluded(_), Bound::Included(_))
        | (Bound::Excluded(_), Bound::Excluded(_)) => {
            unreachable!("A start bound can't be excluded")
        }
    }
}
/// Converts a range bound to its indexes.
Converts a range bound to its indexes.
Converts a range bound to its indexes .
pub(crate) fn bounds_to_usize(
    left: Bound<&usize>,
    right: Bound<&usize>,
    count_elements: usize,
) -> (usize, usize) {
    match (left, right) {
        (Bound::Included(x), Bound::Included(y)) => (*x, y + 1),
        (Bound::Included(x), Bound::Excluded(y)) => (*x, *y),
        (Bound::Included(x), Bound::Unbounded) => (*x, count_elements),
        (Bound::Unbounded, Bound::Unbounded) => (0, count_elements),
        (Bound::Unbounded, Bound::Included(y)) => (0, y + 1),
        (Bound::Unbounded, Bound::Excluded(y)) => (0, *y),
        (Bound::Excluded(_), Bound::Unbounded)
        | (Bound::Excluded(_), Bound::Included(_))
        | (Bound::Excluded(_), Bound::Excluded(_)) => {
            unreachable!("A start bound can't be excluded")
        }
    }
}
pub ( crate ) fn bounds_to_usize ( left : Bound < & usize > , right : Bound < & usize > , count_elements : usize , ) -> ( usize , usize ) { match ( left , right ) { ( Bound :: Included ( x ) , Bound :: Included ( y ) ) => ( * x , y + 1 ) , ( Bound :: Included ( x ) , Bound :: Excluded ( y ) ) => ( * x , * y ) , ( Bound :: Included ( x ) , Bound :: Unbounded ) => ( * x , count_elements ) , ( Bound :: Unbounded , Bound :: Unbounded ) => ( 0 , count_elements ) , ( Bound :: Unbounded , Bound :: Included ( y ) ) => ( 0 , y + 1 ) , ( Bound :: Unbounded , Bound :: Excluded ( y ) ) => ( 0 , * y ) , ( Bound :: Excluded ( _ ) , Bound :: Unbounded ) | ( Bound :: Excluded ( _ ) , Bound :: Included ( _ ) ) | ( Bound :: Excluded ( _ ) , Bound :: Excluded ( _ ) ) => { unreachable ! ( " " ) } } }
Converts a range bound to its indexes.
Converts a range bound to its indexes .
left
Bound<&usize>
right
Bound<&usize>
count_elements
usize