use std::fmt::Debug;
pub trait Order: Copy + Debug + Default {
fn select<T>(cm: T, rm: T) -> T;
}
#[derive(Clone, Copy, Debug, Default)]
pub struct ColumnMajor;
#[derive(Clone, Copy, Debug, Default)]
pub struct RowMajor;
impl Order for ColumnMajor {
fn select<T>(cm: T, _: T) -> T {
cm
}
}
impl Order for RowMajor {
fn select<T>(_: T, rm: T) -> T {
rm
}
}