rust-rule-engine 0.2.1

A high-performance rule engine for Rust with GRL (Grule Rule Language) support, file-based rules, custom functions, and method calls
Documentation
use rust_rule_engine::parser::grl::GRLParser;

fn main() {
    // Test các GRL patterns khác nhau
    let test_cases = vec![
        // Simple condition
        r#"rule "Test1" {
when
User.Age > 18
then
User.setStatus("adult");
}"#,
        
        // Compound condition với &&
        r#"rule "Test2" {
when
User.Country == "US" && User.SpendingTotal >= 1000
then
User.setIsVIP(true);
}"#,
        
        // Assignment action
        r#"rule "Test3" {
when
User.Age >= 18
then
User.IsAdult = true;
}"#,
        
        // Method call action
        r#"rule "Test4" {
when
User.Country == "US"
then
User.setVIPLevel("Gold");
}"#,
    ];

    for (i, grl) in test_cases.iter().enumerate() {
        println!("\n�� Test case {}: ", i + 1);
        println!("{}", grl);
        
        match GRLParser::parse_rules(grl) {
            Ok(rules) => {
                println!("✅ Parsed successfully: {} rules", rules.len());
                if !rules.is_empty() {
                    println!("   Rule name: {}", rules[0].name);
                }
            }
            Err(e) => {
                println!("❌ Parse failed: {:?}", e);
            }
        }
    }
}