airlab_lib/model/
error.rs1use crate::model::store;
2use crate::pwd;
3use derive_more::From;
4use serde::Serialize;
5use serde_with::{DisplayFromStr, serde_as};
6
7pub type Result<T> = core::result::Result<T, Error>;
8
9#[serde_as]
10#[derive(Debug, Serialize, From)]
11pub enum Error {
12 EntityNotFound {
13 entity: &'static str,
14 id: i32,
15 },
16 ListLimitOverMax {
17 max: i64,
18 actual: i64,
19 },
20
21 #[from]
23 Pwd(pwd::Error),
24 #[from]
25 Store(store::Error),
26
27 #[from]
29 Sqlx(#[serde_as(as = "DisplayFromStr")] sqlx::Error),
30 #[from]
31 SeaQuery(#[serde_as(as = "DisplayFromStr")] sea_query::error::Error),
32 #[from]
33 ModqlIntoSea(#[serde_as(as = "DisplayFromStr")] modql::filter::IntoSeaError),
34}
35
36impl core::fmt::Display for Error {
37 fn fmt(&self, fmt: &mut core::fmt::Formatter) -> core::result::Result<(), core::fmt::Error> {
38 write!(fmt, "{self:?}")
39 }
40}
41
42impl std::error::Error for Error {}