1pub mod auth;
2pub mod env;
3pub mod guard;
4pub mod rule;
5
6use crate::ThisError;
7
8#[derive(Debug, ThisError)]
13pub enum AccessError {
14 #[error(transparent)]
15 Auth(#[from] auth::AuthAccessError),
16
17 #[error(transparent)]
18 Env(#[from] env::EnvAccessError),
19
20 #[error(transparent)]
21 Guard(#[from] guard::GuardAccessError),
22
23 #[error(transparent)]
24 Rule(#[from] rule::RuleAccessError),
25
26 #[error("access denied: {0}")]
27 Denied(String),
28}
29
30#[must_use]
32pub fn deny(reason: impl Into<String>) -> AccessError {
33 AccessError::Denied(reason.into())
34}