use thiserror::Error;
#[derive(Clone, Debug, Error, PartialEq, Eq)]
pub(crate) enum CubeclKernelError {
#[error("axis {axis} is out of bounds for rank {rank}")]
InvalidAxis {
axis: usize,
rank: usize,
},
#[error("output shape {actual:?} does not match expected keepdims shape {expected:?}")]
MismatchOutputShape {
expected: Vec<usize>,
actual: Vec<usize>,
},
#[error("invalid reduction strategy: {reason}")]
InvalidStrategy {
reason: String,
},
}
pub(crate) type Result<T> = core::result::Result<T, CubeclKernelError>;