#[derive(Clone, Copy, Debug, thiserror::Error, PartialEq, Eq)]
#[non_exhaustive]
pub enum ExecError {
#[error("thread budget must be at least 1")]
ZeroBudget,
#[error("SPMD width {width} exceeds pool size {pool}")]
WidthExceedsPool {
width: usize,
pool: usize,
},
#[error("SPMD width {width} exceeds thread budget {budget}")]
WidthExceedsBudget {
width: usize,
budget: usize,
},
#[error("co-scheduled execution unavailable in this context")]
Unavailable,
#[error("batch strategy {strategy:?} is unavailable for this route")]
StrategyUnavailable {
strategy: crate::batch::BatchStrategy,
},
}