1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
//! The ockam_abac crate is responsible for performing attribute based authorization
//! control on messages within an Ockam worker system.

#![cfg_attr(not(feature = "std"), no_std)]

#[cfg(feature = "alloc")]
extern crate alloc;
extern crate core;

mod env;
mod error;
mod eval;
mod policy;
mod types;

#[cfg(feature = "std")]
mod parser;

pub mod attribute_access_control;
pub mod expr;
mod storage;

pub use attribute_access_control::AbacAccessControl;
pub use env::Env;
pub use error::{EvalError, ParseError};
pub use eval::eval;
pub use expr::Expr;
pub use policy::PolicyAccessControl;
pub use storage::*;
pub use types::{Action, Resource, Subject};

#[cfg(feature = "std")]
pub use parser::parse;

#[cfg(not(feature = "std"))]
pub use ockam_executor::tokio;

#[cfg(feature = "std")]
pub use tokio;