canic_core/access/
mod.rs

1pub mod auth;
2pub mod env;
3pub mod guard;
4pub mod rule;
5
6use crate::ThisError;
7
8///
9/// AccessError
10///
11
12#[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/// Use this to return a custom access failure from endpoint-specific rules.
31#[must_use]
32pub fn deny(reason: impl Into<String>) -> AccessError {
33    AccessError::Denied(reason.into())
34}