Skip to main content

pnc_engine/
error.rs

1use thiserror::Error;
2
3/// Errors that can occur during evaluation or persistence.
4#[derive(Debug, Error)]
5pub enum PncError {
6    #[error("division by zero")]
7    DivisionByZero,
8    #[error("precision budget exceeded")]
9    PrecisionBudgetExceeded,
10    #[error("invalid unit conversion")]
11    InvalidUnitConversion,
12    #[error("parse error: {0}")]
13    Parse(String),
14    #[error("unknown command: {0}")]
15    UnknownCommand(String),
16    #[error("clipboard unavailable")]
17    ClipboardUnavailable,
18    #[error("stack underflow")]
19    StackUnderflow,
20    #[error("unsupported schema version")]
21    UnsupportedSchemaVersion,
22    #[error("io error: {0}")]
23    Io(#[from] std::io::Error),
24}