#[non_exhaustive]pub enum ErrorCode {
DeviceOutOfMemory,
UnsupportedFeature,
PoisonedLock,
KernelCompileFailed,
DispatchFailed,
InvalidProgram,
CooperativeResidencyExceeded,
Unknown,
}Expand description
Machine-readable classification of a backend failure kind.
Use this to drive retry logic, circuit breakers, and alerting rules without parsing human-readable message strings.
Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
DeviceOutOfMemory
Backend device reported insufficient memory.
UnsupportedFeature
The backend does not support a required feature.
PoisonedLock
A lock used by the backend failed to unlock safely.
This is generally caused by a panic while a write guard was held and indicates an internal synchronization bug in process state.
KernelCompileFailed
GPU kernel-source compilation failed. “Shader” in the variant
name is historical; the code covers any kernel-source compile
failure for any backend kernel-source or binary validation.
A 2.0 rename to KernelCompileFailed is tracked in the
semver-policy doc; the variant stays stable in 0.x.
DispatchFailed
Command dispatch or queue submission failed.
InvalidProgram
The program itself is invalid for this backend.
CooperativeResidencyExceeded
A cooperative (whole-grid-sync) launch could not fit every block co-resident on the device. This is a routable performance condition, not a hard failure: the orchestrator should fall back (loudly) to a recall-identical non-cooperative path (resident fixpoint or host split).
Unknown
Unclassified error (produced by BackendError::new).
Implementations§
Trait Implementations§
impl Copy for ErrorCode
impl Eq for ErrorCode
impl StructuralPartialEq for ErrorCode
Auto Trait Implementations§
impl Freeze for ErrorCode
impl RefUnwindSafe for ErrorCode
impl Send for ErrorCode
impl Sync for ErrorCode
impl Unpin for ErrorCode
impl UnsafeUnpin for ErrorCode
impl UnwindSafe for ErrorCode
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.