pub struct RuleEngineBuilder { /* private fields */ }Expand description
Builder pattern for creating a RustRuleEngine with various configurations
Implementations§
Source§impl RuleEngineBuilder
impl RuleEngineBuilder
Sourcepub fn new() -> Self
pub fn new() -> Self
Create a new RuleEngineBuilder
Examples found in repository?
examples/builder_test.rs (line 17)
4fn main() -> Result<(), Box<dyn std::error::Error>> {
5 println!("🔧 Testing RuleEngineBuilder with inline rules");
6
7 let grl_rules = r#"
8 rule "SimpleTest" salience 10 {
9 when
10 User.Age >= 18
11 then
12 log("User is adult");
13 }
14 "#;
15
16 // Test inline rules
17 let engine = RuleEngineBuilder::new().with_inline_grl(grl_rules)?.build();
18
19 // Create facts
20 let facts = Facts::new();
21 let mut user = HashMap::new();
22 user.insert("Age".to_string(), Value::Integer(25));
23 facts.add_value("User", Value::Object(user))?;
24
25 // Execute
26 let result = engine.execute(&facts)?;
27 println!("✅ Rules fired: {}", result.rules_fired);
28
29 Ok(())
30}Sourcepub fn with_rule_file<P: AsRef<Path>>(self, path: P) -> Result<Self>
pub fn with_rule_file<P: AsRef<Path>>(self, path: P) -> Result<Self>
Add rules from a .grl file
Sourcepub fn with_inline_grl(self, grl_content: &str) -> Result<Self>
pub fn with_inline_grl(self, grl_content: &str) -> Result<Self>
Add rules from inline GRL string
Examples found in repository?
examples/builder_test.rs (line 17)
4fn main() -> Result<(), Box<dyn std::error::Error>> {
5 println!("🔧 Testing RuleEngineBuilder with inline rules");
6
7 let grl_rules = r#"
8 rule "SimpleTest" salience 10 {
9 when
10 User.Age >= 18
11 then
12 log("User is adult");
13 }
14 "#;
15
16 // Test inline rules
17 let engine = RuleEngineBuilder::new().with_inline_grl(grl_rules)?.build();
18
19 // Create facts
20 let facts = Facts::new();
21 let mut user = HashMap::new();
22 user.insert("Age".to_string(), Value::Integer(25));
23 facts.add_value("User", Value::Object(user))?;
24
25 // Execute
26 let result = engine.execute(&facts)?;
27 println!("✅ Rules fired: {}", result.rules_fired);
28
29 Ok(())
30}Sourcepub fn with_config(self, config: EngineConfig) -> Self
pub fn with_config(self, config: EngineConfig) -> Self
Set engine configuration
Sourcepub fn build(self) -> RustRuleEngine
pub fn build(self) -> RustRuleEngine
Build the RustRuleEngine
Examples found in repository?
examples/builder_test.rs (line 17)
4fn main() -> Result<(), Box<dyn std::error::Error>> {
5 println!("🔧 Testing RuleEngineBuilder with inline rules");
6
7 let grl_rules = r#"
8 rule "SimpleTest" salience 10 {
9 when
10 User.Age >= 18
11 then
12 log("User is adult");
13 }
14 "#;
15
16 // Test inline rules
17 let engine = RuleEngineBuilder::new().with_inline_grl(grl_rules)?.build();
18
19 // Create facts
20 let facts = Facts::new();
21 let mut user = HashMap::new();
22 user.insert("Age".to_string(), Value::Integer(25));
23 facts.add_value("User", Value::Object(user))?;
24
25 // Execute
26 let result = engine.execute(&facts)?;
27 println!("✅ Rules fired: {}", result.rules_fired);
28
29 Ok(())
30}Trait Implementations§
Auto Trait Implementations§
impl Freeze for RuleEngineBuilder
impl RefUnwindSafe for RuleEngineBuilder
impl Send for RuleEngineBuilder
impl Sync for RuleEngineBuilder
impl Unpin for RuleEngineBuilder
impl UnwindSafe for RuleEngineBuilder
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