use thiserror::Error;
#[derive(Debug, Error)]
pub enum CoreError {
#[error("invalid config: missing required field `{field}`")]
MissingConfigField {
field: String,
},
#[error("invalid config: field `{field}` has wrong type")]
WrongConfigType {
field: String,
},
#[error("project not found: id={0:?}")]
ProjectNotFound(crate::ProjectId),
#[error("project namespace already exists: {0}")]
NamespaceConflict(String),
#[error("invalid input: {0}")]
InvalidInput(String),
#[error("conflict: {0}")]
Conflict(String),
#[error("unauthorized: {0}")]
Unauthorized(String),
#[error("forbidden: {0}")]
Forbidden(String),
}