rustine 0.1.1

High-performance Gel syntax parser transforming to JSON/XML (Rust + PyO3)
Documentation
use rustine::parse_and_run;

/// `out.create` / `out.add` / `out.replace` must fire enqueued `on_add` triggers.
#[test]
fn out_create_fires_on_add_trigger() {
    let src = "\
grammar main:
    match /setup/:
        out.enqueue_on_add(/data/, \"root/triggered\")
    match /data/:
        out.create(\"root/item\", \"val\")
";
    let json = parse_and_run(src, "main", "setupdata").expect("exec");
    assert!(
        json.contains("\"triggered\""),
        "on_add trigger should fire during out.create: {json}"
    );
    assert!(json.contains("\"item\""), "created item should exist: {json}");
}