thesis/project/backend/src/errors.rs
2020-04-13 17:48:42 +03:00

33 lines
889 B
Rust

use bcrypt::BcryptError;
use diesel::result;
use std::fmt;
pub enum CustomError {
HashError(BcryptError),
DBError(result::Error),
PasswordMatchError(String),
PasswordWrong(String),
}
impl From<BcryptError> for CustomError {
fn from(error: BcryptError) -> Self {
CustomError::HashError(error)
}
}
impl From<result::Error> for CustomError {
fn from(error: result::Error) -> Self {
CustomError::DBError(error)
}
}
impl std::fmt::Display for CustomError {
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
match self {
CustomError::HashError(error) => write!(f, "{}", error),
CustomError::DBError(error) => write!(f, "{}", error),
CustomError::PasswordMatchError(error) => write!(f, "{}", error),
CustomError::PasswordWrong(error) => write!(f, "{}", error),
}
}
}