Struct lua_patterns::LuaPatternBuilder [] [src]

pub struct LuaPatternBuilder { /* fields omitted */ }

Build a byte Lua pattern, optionally escaping 'magic' characters

Methods

impl LuaPatternBuilder
[src]

Create a new Lua pattern builder

Add unescaped characters from a string

let patt = lua_patterns::LuaPatternBuilder::new()
    .text("(boo)")
    .build();
assert_eq!(std::str::from_utf8(&patt).unwrap(), "(boo)");

Add unescaped characters from lines

This looks for first non-whitespace run in each line, useful for spreading patterns out and commmenting them. Works with patterns that use '%s' religiously!

let patt = lua_patterns::LuaPatternBuilder::new()
    .text_lines("
      hello-dolly
      you-are-fine  # comment
      cool
     ")
    .build();
assert_eq!(std::str::from_utf8(&patt).unwrap(),
  "hello-dollyyou-are-finecool");

Add escaped bytes from a slice

let patt = lua_patterns::LuaPatternBuilder::new()
    .text("^")
    .bytes(b"^") // magic character!
    .build();
assert_eq!(std::str::from_utf8(&patt).unwrap(), "^%^");

Add escaped bytes from hex string

This consists of adjacent pairs of hex digits.

let patt = lua_patterns::LuaPatternBuilder::new()
    .text("^")
    .bytes_as_hex("5E") // which is ASCII '^'
    .build();
assert_eq!(std::str::from_utf8(&patt).unwrap(), "^%^");

Create the pattern

Utility to create a vector of bytes from a hex string

let bb = lua_patterns::LuaPatternBuilder::hex_to_bytes("AEFE00FE");
assert_eq!(bb, &[0xAE,0xFE,0x00,0xFE]);

Utility to create a hex string from a slice of bytes

let hex = lua_patterns::LuaPatternBuilder::bytes_to_hex(&[0xAE,0xFE,0x00,0xFE]);
assert_eq!(hex,"AEFE00FE");