pub fn tensor_len_ok(dims: &[usize], bits_per_item: usize, data_size_bytes: usize) -> bool { let mut len = 1usize; let mut overflow = false; let mut i = 0usize; while i < dims.len() { let d = dims[i]; if d != 0 && len > usize::MAX / d { overflow = true; } else { len = len * d; } i += 1; } if overflow { return false; } let per = bits_per_item / 8; if per != 0 && len > usize::MAX / per { return false; } len * per == data_size_bytes }