1pub mod auth;
6pub mod env;
7pub mod guard;
8pub mod metrics;
9pub mod rule;
10
11use thiserror::Error as ThisError;
12
13#[derive(Debug, ThisError)]
18pub enum AccessError {
19 #[error(transparent)]
20 Auth(#[from] auth::AuthAccessError),
21
22 #[error(transparent)]
23 Env(#[from] env::EnvAccessError),
24
25 #[error(transparent)]
26 Guard(#[from] guard::GuardAccessError),
27
28 #[error(transparent)]
29 Rule(#[from] rule::RuleAccessError),
30
31 #[error("access denied: {0}")]
32 Denied(String),
33}
34
35#[must_use]
37pub fn deny(reason: impl Into<String>) -> AccessError {
38 AccessError::Denied(reason.into())
39}