Skip to main content

acls_rs/
lib.rs

1#![warn(missing_docs)]
2//! Algebraically-correct permissions system with RBAC, ABAC, and temporal support.
3
4pub mod algebra;
5pub mod calculation;
6pub mod permission;
7pub mod policy;
8pub mod resource;
9pub mod subject;
10pub mod sync;
11
12pub use resource::Resource;
13pub use subject::{BuilderError, Subject};
14
15/// Commonly used types and traits, re-exported for convenience.
16pub mod prelude {
17    pub use crate::algebra::{
18        JoinSemilattice, Lattice, MeetSemilattice, Monoid, MonoidAction, Semigroup,
19    };
20    pub use crate::calculation::{
21        HasPermissions, PermissionEffect, PermissionEffectBuilder, PermissionPreview,
22    };
23    pub use crate::permission::{
24        AtomicPermission, DenialSet, GrantDenialPair, PermissionDelta, PermissionMapping,
25        PermissionSet, TemporalPermission, TemporalPermissionSet,
26    };
27    pub use crate::policy::{
28        AbacPolicy, AttributeContext, AttributePermission, AttributeRule, ConflictResolver,
29        JoinResolver, MeetResolver, PriorityResolver, RbacError, RbacPolicy, Role,
30    };
31    pub use crate::resource::Resource;
32    pub use crate::subject::Subject;
33}