pub fn calc_index(indices: &[usize], lengths: &[usize]) -> usize { let mut idx = 0usize; let mut prod = 1usize; for i in (0..indices.len()).rev() { idx += indices[i] * prod; prod *= lengths[i]; } idx }