Skip to main content

wae_authentication/password/
error.rs

1//! 密码哈希错误类型
2
3use std::fmt;
4use wae_types::WaeError;
5
6/// 密码哈希错误
7#[derive(Debug)]
8pub enum PasswordHashError {
9    /// 无效配置
10    InvalidConfig,
11    /// 哈希生成失败
12    HashFailed,
13    /// 验证失败
14    VerifyFailed,
15    /// 无效哈希格式
16    InvalidHashFormat,
17}
18
19impl fmt::Display for PasswordHashError {
20    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
21        match self {
22            PasswordHashError::InvalidConfig => write!(f, "无效的密码哈希配置"),
23            PasswordHashError::HashFailed => write!(f, "密码哈希生成失败"),
24            PasswordHashError::VerifyFailed => write!(f, "密码验证失败"),
25            PasswordHashError::InvalidHashFormat => write!(f, "无效的哈希格式"),
26        }
27    }
28}
29
30impl std::error::Error for PasswordHashError {}
31
32impl From<PasswordHashError> for WaeError {
33    fn from(err: PasswordHashError) -> Self {
34        match err {
35            PasswordHashError::InvalidConfig => WaeError::config_invalid("password_hash", "invalid configuration"),
36            PasswordHashError::HashFailed => WaeError::internal("password hash failed"),
37            PasswordHashError::VerifyFailed => WaeError::invalid_credentials(),
38            PasswordHashError::InvalidHashFormat => WaeError::invalid_format("hash", "valid hash format"),
39        }
40    }
41}
42
43/// 密码哈希结果类型
44pub type PasswordHashResult<T> = Result<T, PasswordHashError>;