errors/
errors.rs

1extern crate lua_patterns;
2use lua_patterns::errors::PatternError;
3
4fn main() {
5    let bad = [
6        ("bonzo %", "malformed pattern (ends with '%')"),
7        ("bonzo (dog%(", "unfinished capture"),
8        ("alles [%a%[", "malformed pattern (missing ']')"),
9        ("bonzo (dog (cat)", "unfinished capture"),
10        ("frodo %f[%A", "malformed pattern (missing ']')"),
11        ("frodo (1) (2(3)%2)%1", "invalid capture index %2"),
12    ];
13
14    fn error(s: &str) -> PatternError {
15        PatternError::Pattern(s.into())
16    }
17
18    for p in bad.iter() {
19        let res = lua_patterns::LuaPattern::new_try(p.0);
20        if let Err(e) = res {
21            assert_eq!(e, error(p.1));
22        } else {
23            println!("'{}' was fine", p.0);
24        }
25    }
26}