pub struct RbacEngine { /* private fields */ }Expand description
A compiled, fast-lookup RBAC engine.
After construction from an RbacPolicy, the engine pre-computes:
- Effective permissions per role (with inheritance flattened).
- Subject → role mappings.
Every check() call does O(roles × patterns) work — fast enough for
the sizes of policies used in AI agent deployments.
Implementations§
Source§impl RbacEngine
impl RbacEngine
Trait Implementations§
Source§impl PolicyEngine for RbacEngine
impl PolicyEngine for RbacEngine
Source§fn check(
&self,
subject: &SubjectId,
action: &str,
resource: &ResourceId,
) -> PolicyResult
fn check( &self, subject: &SubjectId, action: &str, resource: &ResourceId, ) -> PolicyResult
Source§fn check_async<'a>(
&'a self,
subject: &'a SubjectId,
action: &'a str,
resource: &'a ResourceId,
) -> Pin<Box<dyn Future<Output = PolicyResult> + Send + 'a>>
fn check_async<'a>( &'a self, subject: &'a SubjectId, action: &'a str, resource: &'a ResourceId, ) -> Pin<Box<dyn Future<Output = PolicyResult> + Send + 'a>>
Source§fn check_with_context(
&self,
subject: &SubjectId,
action: &str,
resource: &ResourceId,
_ctx: &RequestContext,
) -> PolicyResult
fn check_with_context( &self, subject: &SubjectId, action: &str, resource: &ResourceId, _ctx: &RequestContext, ) -> PolicyResult
Evaluate a request with runtime context. Read more
Source§fn check_with_context_async<'a>(
&'a self,
subject: &'a SubjectId,
action: &'a str,
resource: &'a ResourceId,
ctx: &'a RequestContext,
) -> Pin<Box<dyn Future<Output = PolicyResult> + Send + 'a>>
fn check_with_context_async<'a>( &'a self, subject: &'a SubjectId, action: &'a str, resource: &'a ResourceId, ctx: &'a RequestContext, ) -> Pin<Box<dyn Future<Output = PolicyResult> + Send + 'a>>
Evaluate a request with runtime context asynchronously. Read more
Source§fn with_fallback(self, fallback: Arc<dyn PolicyEngine>) -> FallbackEngine<Self>where
Self: Sized,
fn with_fallback(self, fallback: Arc<dyn PolicyEngine>) -> FallbackEngine<Self>where
Self: Sized,
Compose this engine with a fallback. Read more
Auto Trait Implementations§
impl Freeze for RbacEngine
impl RefUnwindSafe for RbacEngine
impl Send for RbacEngine
impl Sync for RbacEngine
impl Unpin for RbacEngine
impl UnsafeUnpin for RbacEngine
impl UnwindSafe for RbacEngine
Blanket Implementations§
Source§impl<T> AsyncPolicyEngine for Twhere
T: PolicyEngine + ?Sized,
impl<T> AsyncPolicyEngine for Twhere
T: PolicyEngine + ?Sized,
Source§fn check_async<'a>(
&'a self,
subject: &'a SubjectId,
action: &'a str,
resource: &'a ResourceId,
) -> Pin<Box<dyn Future<Output = PolicyResult> + Send + 'a>>
fn check_async<'a>( &'a self, subject: &'a SubjectId, action: &'a str, resource: &'a ResourceId, ) -> Pin<Box<dyn Future<Output = PolicyResult> + Send + 'a>>
Evaluate whether
subject may perform action on resource
asynchronously.Source§fn check_with_context_async<'a>(
&'a self,
subject: &'a SubjectId,
action: &'a str,
resource: &'a ResourceId,
ctx: &'a RequestContext,
) -> Pin<Box<dyn Future<Output = PolicyResult> + Send + 'a>>
fn check_with_context_async<'a>( &'a self, subject: &'a SubjectId, action: &'a str, resource: &'a ResourceId, ctx: &'a RequestContext, ) -> Pin<Box<dyn Future<Output = PolicyResult> + Send + 'a>>
Evaluate a request with runtime context asynchronously.
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more