orchestral_runtime/api/
error.rs1use thiserror::Error;
2
3#[derive(Debug, Clone, Copy, PartialEq, Eq)]
4pub enum ErrorCode {
5 NotFound,
6 PermissionDenied,
7 Conflict,
8 InvalidArgument,
9 Internal,
10}
11
12#[derive(Debug, Error)]
13pub enum ApiError {
14 #[error("not found: {0}")]
15 NotFound(String),
16 #[error("permission denied: {0}")]
17 PermissionDenied(String),
18 #[error("conflict: {0}")]
19 Conflict(String),
20 #[error("invalid argument: {0}")]
21 InvalidArgument(String),
22 #[error("internal: {0}")]
23 Internal(String),
24}
25
26impl ApiError {
27 pub fn code(&self) -> ErrorCode {
28 match self {
29 Self::NotFound(_) => ErrorCode::NotFound,
30 Self::PermissionDenied(_) => ErrorCode::PermissionDenied,
31 Self::Conflict(_) => ErrorCode::Conflict,
32 Self::InvalidArgument(_) => ErrorCode::InvalidArgument,
33 Self::Internal(_) => ErrorCode::Internal,
34 }
35 }
36}