casbin/
lib.rs

1#[cfg(all(not(feature = "logging"), feature = "explain"))]
2compile_error!(
3    "'logging' feature must be enabled along with 'explain' feature"
4);
5
6mod adapter;
7#[cfg(feature = "cached")]
8mod cache;
9#[cfg(feature = "cached")]
10mod cached_api;
11#[cfg(feature = "cached")]
12mod cached_enforcer;
13mod config;
14mod convert;
15mod core_api;
16mod effector;
17mod emitter;
18mod enforcer;
19mod internal_api;
20#[cfg(feature = "logging")]
21mod logger;
22mod macros;
23mod management_api;
24mod model;
25mod rbac;
26mod rbac_api;
27mod util;
28#[cfg(feature = "watcher")]
29mod watcher;
30
31pub mod error;
32pub mod frontend;
33pub mod prelude;
34
35#[cfg(not(target_arch = "wasm32"))]
36pub use adapter::FileAdapter;
37pub use adapter::{Adapter, Filter, MemoryAdapter, NullAdapter, StringAdapter};
38
39#[cfg(feature = "cached")]
40pub use cache::{Cache, DefaultCache};
41#[cfg(feature = "cached")]
42pub use cached_api::CachedApi;
43#[cfg(feature = "cached")]
44pub use cached_enforcer::CachedEnforcer;
45pub use convert::{EnforceArgs, TryIntoAdapter, TryIntoModel};
46pub use core_api::{CoreApi, IEnforcer};
47pub use effector::{
48    DefaultEffectStream, DefaultEffector, EffectKind, Effector, EffectorStream,
49};
50pub use emitter::{Event, EventData, EventEmitter, EventKey};
51pub use enforcer::EnforceContext;
52pub use enforcer::Enforcer;
53pub use error::Error;
54pub use internal_api::InternalApi;
55#[cfg(feature = "logging")]
56pub use logger::{DefaultLogger, Logger};
57pub use management_api::MgmtApi;
58pub use model::{function_map, Assertion, DefaultModel, Model};
59pub use rbac::{DefaultRoleManager, MatchingFn, RoleManager};
60pub use rbac_api::RbacApi;
61#[cfg(feature = "watcher")]
62pub use watcher::Watcher;
63
64pub type Result<T> = std::result::Result<T, Error>;
65
66// re-exports
67pub mod rhai {
68    pub use rhai::*;
69}