pub struct PolicyEngine { /* private fields */ }Expand description
Hot-swappable decision point. Provide via ctx.provide(PolicyEngine::new(…)).
Implementations§
Source§impl PolicyEngine
impl PolicyEngine
pub fn new(initial: PolicySet) -> Self
Sourcepub fn reload(&self, next: PolicySet)
pub fn reload(&self, next: PolicySet)
Swap in a new rule set — effective on the very next evaluation. Stale (≤ current) versions are ignored, so concurrent watchers and duplicate bundle delivery are harmless.
Sourcepub fn evaluate(&self, input: &PolicyInput<'_>) -> Decision
pub fn evaluate(&self, input: &PolicyInput<'_>) -> Decision
Hot path: one atomic load + map read + pure predicates.
pub fn version(&self) -> u64
Auto Trait Implementations§
impl !Freeze for PolicyEngine
impl !RefUnwindSafe for PolicyEngine
impl !UnwindSafe for PolicyEngine
impl Send for PolicyEngine
impl Sync for PolicyEngine
impl Unpin for PolicyEngine
impl UnsafeUnpin for PolicyEngine
Blanket Implementations§
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> FutureExt for T
impl<T> FutureExt for T
Source§fn with_context(self, otel_cx: Context) -> WithContext<Self>
fn with_context(self, otel_cx: Context) -> WithContext<Self>
Source§fn with_current_context(self) -> WithContext<Self>
fn with_current_context(self) -> WithContext<Self>
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
Wrap the input message
T in a tonic::Request