spring_boot/
error.rs

1use std::io::{self, ErrorKind};
2
3use thiserror::Error;
4
5#[derive(Error, Debug)]
6pub enum AppError {
7    #[error(transparent)]
8    EnvError(#[from] dotenvy::Error),
9
10    #[error(transparent)]
11    IOError(#[from] io::Error),
12
13    #[error(transparent)]
14    TomlParseError(#[from] toml::de::Error),
15
16    #[error("merge toml error: {0}")]
17    TomlMergeError(String),
18
19    #[error(transparent)]
20    JoinError(#[from] tokio::task::JoinError),
21
22    #[error(transparent)]
23    OtherError(#[from] anyhow::Error),
24}
25
26impl AppError {
27    pub fn from_io(kind: ErrorKind, msg: &str) -> Self {
28        AppError::IOError(io::Error::new(kind, msg))
29    }
30}
31
32pub type Result<T> = std::result::Result<T, AppError>;