Skip to main content

convergio_types/
errors.rs

1//! Shared error types used across the platform.
2
3/// Top-level error type for the Convergio platform.
4#[derive(Debug, thiserror::Error)]
5pub enum ConvergioError {
6    #[error("database error: {0}")]
7    Db(String),
8
9    #[error("extension error: {module} — {message}")]
10    Extension { module: String, message: String },
11
12    #[error("dependency not satisfied: {capability} required by {requirer}")]
13    DependencyMissing {
14        capability: String,
15        requirer: String,
16    },
17
18    #[error("permission denied: {0}")]
19    PermissionDenied(String),
20
21    #[error("not found: {0}")]
22    NotFound(String),
23
24    #[error("validation error: {0}")]
25    Validation(String),
26
27    #[error("budget exceeded: {org} spent {spent:.2} of {limit:.2} USD")]
28    BudgetExceeded { org: String, spent: f64, limit: f64 },
29
30    #[error("{0}")]
31    Internal(String),
32}