wae_authentication/rate_limit/
error.rs1use std::fmt;
4use wae_types::WaeError;
5
6#[derive(Debug)]
8pub enum RateLimitError {
9 RateLimitExceeded {
11 retry_after: u64,
13 },
14}
15
16impl fmt::Display for RateLimitError {
17 fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
18 match self {
19 RateLimitError::RateLimitExceeded { retry_after } => {
20 write!(f, "请求过于频繁,请在 {} 秒后重试", retry_after)
21 }
22 }
23 }
24}
25
26impl std::error::Error for RateLimitError {}
27
28impl From<RateLimitError> for WaeError {
29 fn from(err: RateLimitError) -> Self {
30 match err {
31 RateLimitError::RateLimitExceeded { retry_after } => WaeError::rate_limit_exceeded(retry_after),
32 }
33 }
34}
35
36pub type RateLimitResult<T> = Result<T, RateLimitError>;