safe_box/
err.rs

1use thiserror::Error;
2
3#[derive(Error, Debug)]
4pub enum SafeBoxError {
5    /// Internal SQL error.
6    #[error(transparent)]
7    SQL(#[from] sqlx::error::Error),
8    /// Cryptography error with hashed passwords.
9    #[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}