I'm curious why AxisDescription is a tuple struct. Since the fields are pub anyway, I think it would be more convenient to change the definition to this
pub struct AxisDescription {
pub axis: Axis,
pub len: usize,
pub stride: isize,
}
and remove the .axis(), .len(), and .stride() methods.