actix_limitation/
errors.rs1use derive_more::{Display, Error, From};
2
3use crate::status::Status;
4
5#[derive(Debug, Display, Error, From)]
7pub enum Error {
8 #[display(fmt = "Redis client failed to connect or run a query")]
10 Client(redis::RedisError),
11
12 #[display(fmt = "Limit is exceeded for a key")]
14 #[from(ignore)]
15 LimitExceeded(#[error(not(source))] Status),
16
17 #[display(fmt = "Time conversion failed")]
19 Time(time::error::ComponentRange),
20
21 #[display(fmt = "Generic error")]
23 #[from(ignore)]
24 Other(#[error(not(source))] String),
25}
26
27#[cfg(test)]
28mod tests {
29 use super::*;
30
31 static_assertions::assert_impl_all! {
32 Error:
33 From<redis::RedisError>,
34 From<time::error::ComponentRange>,
35 }
36
37 static_assertions::assert_not_impl_any! {
38 Error:
39 From<String>,
40 From<Status>,
41 }
42}