range/
range.rs

1extern crate lua_patterns;
2use lua_patterns::{LuaPattern, LuaPatternBuilder};
3
4fn main() {
5    let mut m = LuaPattern::new("(%a+) one");
6    let text = " hello one two";
7    assert!(m.matches(text));
8    assert_eq!(m.capture(1), 1..6);
9    assert_eq!(m.capture(0), 1..10);
10
11    let v = m.captures(text);
12    assert_eq!(v, &["hello one", "hello"]);
13
14    let mut v = Vec::new();
15    assert!(m.capture_into(text, &mut v));
16    assert_eq!(v, &["hello one", "hello"]);
17
18    let bytes = &[0xFF, 0xEE, 0x0, 0xDE, 0x24, 0x24, 0xBE, 0x0, 0x0];
19
20    let patt = LuaPatternBuilder::new()
21        .bytes_as_hex("DE24")
22        .text("+")
23        .bytes(&[0xBE])
24        .build();
25
26    let mut m = LuaPattern::from_bytes(&patt);
27    assert!(m.matches_bytes(bytes));
28    assert_eq!(&bytes[m.capture(0)], &[0xDE, 0x24, 0x24, 0xBE]);
29
30    let mut m = LuaPattern::new("(%S+)%s*=%s*(%S+);%s*");
31    let res = m.gsub("a=2; b=3; c = 4;", "'%2':%1 ");
32    println!("{}", res);
33
34    let mut m = LuaPattern::new("%s+");
35    let res = m.gsub("hello dolly you're so fine", "");
36    println!("{}", res);
37}