pub struct CrueEngine { /* private fields */ }Expand description
CRUE Engine - main rule evaluation engine
Implementations§
Source§impl CrueEngine
impl CrueEngine
Sourcepub fn load_rules(&mut self, registry: RuleRegistry)
pub fn load_rules(&mut self, registry: RuleRegistry)
Load rules from legacy runtime registry.
Sourcepub fn load_compiled_rules(&mut self, rules: Vec<CompiledPolicyRule>)
pub fn load_compiled_rules(&mut self, rules: Vec<CompiledPolicyRule>)
Replace compiled rules (preferred execution path when non-empty).
Sourcepub fn register_compiled_rule_ast(
&mut self,
ast: &RuleAst,
) -> Result<(), EngineError>
pub fn register_compiled_rule_ast( &mut self, ast: &RuleAst, ) -> Result<(), EngineError>
Register a compiled rule from AST.
Sourcepub fn register_compiled_rule_source(
&mut self,
source: &str,
) -> Result<(), EngineError>
pub fn register_compiled_rule_source( &mut self, source: &str, ) -> Result<(), EngineError>
Register a compiled rule from DSL source.
Sourcepub fn clear_compiled_rules(&mut self)
pub fn clear_compiled_rules(&mut self)
Clear compiled rules and fall back to legacy runtime rules.
Sourcepub fn evaluate(&self, request: &EvaluationRequest) -> EvaluationResult
pub fn evaluate(&self, request: &EvaluationRequest) -> EvaluationResult
Evaluate request against compiled rules first, then legacy runtime rules.
Sourcepub fn evaluate_with_proof(
&self,
request: &EvaluationRequest,
crypto_backend_id: &str,
) -> (EvaluationResult, Option<ProofBinding>)
pub fn evaluate_with_proof( &self, request: &EvaluationRequest, crypto_backend_id: &str, ) -> (EvaluationResult, Option<ProofBinding>)
Evaluate request and produce a strict ProofBinding when the compiled-bytecode path is used.
Returns (result, binding) where binding is:
Some(..)when a compiled rule matched and binding generation succeededNonewhen evaluation used legacy runtime rules or no compiled rule matched
Sourcepub fn evaluate_with_signed_proof_ed25519(
&self,
request: &EvaluationRequest,
crypto_backend_id: &str,
signer_key_id: &str,
key_pair: &Ed25519KeyPair,
) -> (EvaluationResult, Option<ProofEnvelope>)
pub fn evaluate_with_signed_proof_ed25519( &self, request: &EvaluationRequest, crypto_backend_id: &str, signer_key_id: &str, key_pair: &Ed25519KeyPair, ) -> (EvaluationResult, Option<ProofEnvelope>)
Evaluate request and return a signed proof envelope (Ed25519 bootstrap signing).
The envelope is only produced when the compiled-bytecode path is used and a rule matches.
Sourcepub fn evaluate_with_signed_proof_v1_ed25519(
&self,
request: &EvaluationRequest,
crypto_backend_id: &str,
signer_key_id: &str,
key_pair: &Ed25519KeyPair,
) -> (EvaluationResult, Option<ProofEnvelopeV1>)
pub fn evaluate_with_signed_proof_v1_ed25519( &self, request: &EvaluationRequest, crypto_backend_id: &str, signer_key_id: &str, key_pair: &Ed25519KeyPair, ) -> (EvaluationResult, Option<ProofEnvelopeV1>)
Evaluate request and return a canonical ProofEnvelopeV1 signed with Ed25519.
Sourcepub fn set_strict_mode(&mut self, strict: bool)
pub fn set_strict_mode(&mut self, strict: bool)
Set strict mode
Sourcepub fn rule_count(&self) -> usize
pub fn rule_count(&self) -> usize
Get total rule count (compiled + legacy runtime registry)
Sourcepub fn compiled_rule_count(&self) -> usize
pub fn compiled_rule_count(&self) -> usize
Number of compiled rules loaded in VM path.