canic_core/access/
mod.rs

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