1use thiserror::Error;
2
3#[derive(Error, Debug)]
4pub enum SafeBoxError {
5 #[error(transparent)]
7 SQL(#[from] sqlx::error::Error),
8 #[error("{0}")]
10 Crypto(crypto::password_hash::Error),
11
12 #[error("user '{0}' does not exist")]
13 UserNotExist(String),
14
15 #[error("user '{0}' already exists")]
16 UserAlreadyExist(String),
17
18 #[error("invalid password '{pass}' for user 'username'")]
19 BadPass {
20 user: String,
21 pass: String,
22 },
23
24 #[error("invalid token '{0}'")]
25 BadToken(String),
26
27 #[error("invalid database: {0}")]
28 InvalidData(String),
29}
30
31impl From<crypto::password_hash::Error> for SafeBoxError {
32 fn from(value: crypto::password_hash::Error) -> Self {
33 SafeBoxError::Crypto(value)
34 }
35}