pub trait Order {
const IS_COLUMN_MAJOR: bool;
const IS_ROW_MAJOR: bool;
#[must_use]
fn select<T>(cm: T, rm: T) -> T;
}
pub struct ColumnMajor;
pub struct RowMajor;
impl Order for ColumnMajor {
const IS_COLUMN_MAJOR: bool = true;
const IS_ROW_MAJOR: bool = false;
fn select<T>(cm: T, _: T) -> T {
cm
}
}
impl Order for RowMajor {
const IS_COLUMN_MAJOR: bool = false;
const IS_ROW_MAJOR: bool = true;
fn select<T>(_: T, rm: T) -> T {
rm
}
}