Skip to main content

coil_admin/
error.rs

1use std::error::Error;
2use std::fmt;
3
4#[derive(Debug, Clone, PartialEq, Eq)]
5pub enum AdminModelError {
6    EmptyField { field: &'static str },
7    InvalidToken { field: &'static str, value: String },
8    InvalidRoute { field: &'static str, value: String },
9    DuplicateResource { resource_id: String },
10    DuplicateWidget { widget_id: String },
11    DuplicateWorkflow { workflow_id: String },
12}
13
14impl fmt::Display for AdminModelError {
15    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
16        match self {
17            Self::EmptyField { field } => write!(f, "`{field}` cannot be empty"),
18            Self::InvalidToken { field, value } => {
19                write!(f, "`{field}` contains an invalid token `{value}`")
20            }
21            Self::InvalidRoute { field, value } => {
22                write!(f, "`{field}` must start with `/`, got `{value}`")
23            }
24            Self::DuplicateResource { resource_id } => {
25                write!(f, "admin resource `{resource_id}` is duplicated")
26            }
27            Self::DuplicateWidget { widget_id } => {
28                write!(f, "admin widget `{widget_id}` is duplicated")
29            }
30            Self::DuplicateWorkflow { workflow_id } => {
31                write!(f, "admin workflow `{workflow_id}` is duplicated")
32            }
33        }
34    }
35}
36
37impl Error for AdminModelError {}