#[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,
}