Skip to main content

ffai_core/
error.rs

1use crate::engine::Task;
2
3/// Unified error type across all `FFai` crates.
4#[derive(Debug, thiserror::Error)]
5pub enum Error {
6    /// The engine exists in the registry but its implementation hasn't landed.
7    /// Phase 0 ships stubs on purpose — see ROADMAP.md for when each goes live.
8    #[error(
9        "engine `{engine}` ({task}) is a stub in this build — implementation is \
10         scheduled in ROADMAP.md; run `ffai engines` to see engine status"
11    )]
12    NotImplemented { task: Task, engine: String },
13
14    #[error(
15        "no engine named `{name}` registered for task `{task}` — run `ffai engines` to list available engines"
16    )]
17    UnknownEngine { task: Task, name: String },
18
19    #[error("media error: {0}")]
20    Media(String),
21
22    #[error("model error: {0}")]
23    Model(String),
24
25    #[error("tensor error: {0}")]
26    Candle(#[from] candle_core::Error),
27
28    #[error("i/o error: {0}")]
29    Io(#[from] std::io::Error),
30
31    #[error("{0}")]
32    Other(String),
33}
34
35pub type Result<T> = std::result::Result<T, Error>;