use cubecl::tile::launch::{Arg, Labelled};
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
pub enum BindingOrder {
Stated,
InBufferOrder,
}
impl core::fmt::Display for BindingOrder {
fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
match self {
Self::Stated => write!(f, "stated"),
Self::InBufferOrder => write!(f, "in-buffer-order"),
}
}
}
impl BindingOrder {
pub fn applied(self, operand: Arg<'_, Labelled>) -> Arg<'_, Labelled> {
match self {
Self::Stated => operand,
Self::InBufferOrder => operand.in_stride_order(),
}
}
}