Skip to main content

text_to_bpmn/
text_to_bpmn.rs

1//! Process text in, BPMN XML out: `cargo run -p bpmnkit --example text_to_bpmn`.
2
3use bpmnkit::prelude::*;
4
5fn main() -> Result<(), Error> {
6    let text = "# Expense approval\n\
7        start[start Expense submitted] > check[xor Amount over 1000?]\n\
8        check >(Yes: amount > 1000) review[user Review expense] > done[end Paid]\n\
9        check >(No: default) auto[service Approve automatically] > done\n";
10    let Document::Bpmn(definitions) = load(text)? else {
11        unreachable!("process text always expands to BPMN");
12    };
13    println!("{}", serialize_bpmn(&definitions));
14    Ok(())
15}