replique 0.3.0

A pure Rust dialogue system
Documentation
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
use proptest::prelude::*;
use replique::parser::parse;

proptest! {
    #[test]
    fn never_panics_always_terminates(s in ".{0,2000}") {
        let _ = parse(&s);
    }

    #[test]
    fn damage_is_bounded(garbage in ".{0,200}") {
        let src = format!(":= a\n{garbage}\n---\n\n:= b\nAlice: ok\n---\n");
        let parsed = parse(&src);
        let b = parsed.nodes.iter().find(|n| n.name.value == "b");
        prop_assert!(b.is_some_and(|n| n.body.len() == 1));
    }
}