//! Errors returnable by the dispatch scheduler.

use evy_platform_caps::Engine;

#[derive(Debug, Clone, PartialEq, Eq)]
pub enum DispatchError {
    /// A node declared an engine the current platform does not support
    /// and its `FallbackPolicy` does not permit a fallback.
    EngineUnavailable(Engine),
    /// The dependency graph contains a cycle. Reads/writes have a circular
    /// dependency; either the topology is wrong or a node misdeclares its
    /// access set.
    CycleDetected,
    /// A required engine pool (AmxTaskPool / AneTaskPool) failed to
    /// initialize at scheduler construction. The dispatch DAG cannot start.
    PoolInitFailed(String),
}

impl core::fmt::Display for DispatchError {
    fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
        match self {
            Self::EngineUnavailable(e) => write!(f, "engine unavailable: {e:?}"),
            Self::CycleDetected => write!(f, "dispatch DAG contains a cycle"),
            Self::PoolInitFailed(msg) => write!(f, "engine pool init failed: {msg}"),
        }
    }
}

impl std::error::Error for DispatchError {}

Homonyms

soft3/mir/src/error.rs
soft3/tru/rs/error.rs
warriors/trisha/cli/error.rs
neural/rs/darwin-sys/src/error.rs
soft3/radio/iroh-car/src/error.rs
soft3/radio/iroh-ffi/src/error.rs
cyb/prysm/molecules/rs/error.rs
soft3/radio/cyber-bao/src/io/error.rs
soft3/radio/iroh-willow/src/session/error.rs
cyb/evy/forks/naga/src/error.rs
cyb/wysm/crates/fuzz/src/error.rs
cyb/evy/crates/evy_engine_tasks/src/error.rs
soft3/radio/iroh-dns-server/src/http/error.rs
cyb/wysm/crates/ir/src/error.rs
soft3/radio/iroh-blobs/src/get/error.rs
cyb/wysm/crates/c_api/src/error.rs
cyb/wysm/crates/wasmi/src/error.rs
cyb/wysm/crates/core/src/table/error.rs
bootloader/go-cyber/cw/contracts/graph-filter/src/error.rs
cyb/wysm/crates/collections/src/arena/error.rs
cyb/wysm/crates/core/src/memory/error.rs
cyb/evy/forks/bevy_ecs/src/schedule/error.rs
bootloader/go-cyber/cw/contracts/std-test/src/error.rs
cyb/evy/forks/bevy_ecs/src/world/error.rs
cyb/wysm/crates/wasmi/src/func/error.rs
cyb/evy/forks/bevy_ecs/src/query/error.rs
cyb/wysm/crates/wasmi/src/store/error.rs
cyb/evy/forks/naga/src/front/wgsl/error.rs
cyb/evy/forks/naga/src/front/spv/error.rs
cyb/wysm/crates/wasmi/src/engine/translator/error.rs
cyb/evy/forks/naga/src/front/glsl/error.rs
cyb/wysm/crates/wasmi/src/module/instantiate/error.rs

Graph