Skip to main content

PolicyTreeBuilder

Struct PolicyTreeBuilder 

Source
pub struct PolicyTreeBuilder {
    evaluators: Vec<Arc<dyn Evaluator>>,
    declarations: Vec<PolicyDeclaration>,
}
Expand description

Builds a PolicyTree from a set of evaluators and the policies that use them.

Fields§

§evaluators: Vec<Arc<dyn Evaluator>>§declarations: Vec<PolicyDeclaration>

Implementations§

Source§

impl PolicyTreeBuilder

Source

pub fn register_evaluator( &mut self, evaluator: Arc<dyn Evaluator>, ) -> EvaluatorId

Register an evaluator, returning the id later policies reference. One evaluator may serve many policies.

Source

pub fn add_policy(&mut self, declaration: PolicyDeclaration) -> PolicyId

Add a policy, returning its PolicyId. Policies are assigned ids in the order they are added here, which becomes the tree’s presentational evaluation order.

Panics if declaration.predicate names an evaluator id that was not returned by register_evaluator on this builder — a programmer error in the caller wiring up the tree, not a runtime condition. Predicate::Unusable needs no such check: it names no evaluator to have registered.

Source

pub fn build(self) -> PolicyTree

Build the tree.

Trait Implementations§

Source§

impl Default for PolicyTreeBuilder

Source§

fn default() -> PolicyTreeBuilder

Returns the “default value” for a type. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.