pub(crate) const fn focus_up(cursor: usize, len: usize) -> usize {
if cursor == 0 { len - 1 } else { cursor - 1 }
}
pub(crate) const fn focus_down(cursor: usize, len: usize) -> usize {
if cursor + 1 >= len { 0 } else { cursor + 1 }
}
pub(crate) fn parse_index(input: &str, len: usize) -> Option<usize> {
let number: usize = input.parse().ok()?;
(1..=len).contains(&number).then(|| number - 1)
}