Struct lua_patterns::LuaPatternBuilder
source · pub struct LuaPatternBuilder { /* private fields */ }
Expand description
Build a byte Lua pattern, optionally escaping ‘magic’ characters
Implementations§
source§impl LuaPatternBuilder
impl LuaPatternBuilder
sourcepub fn new() -> LuaPatternBuilder
pub fn new() -> LuaPatternBuilder
Create a new Lua pattern builder
sourcepub fn text(&mut self, s: &str) -> &mut Self
pub fn text(&mut self, s: &str) -> &mut Self
Add unescaped characters from a string
let patt = lua_patterns::LuaPatternBuilder::new()
.text("(boo)")
.build();
assert_eq!(std::str::from_utf8(&patt).unwrap(), "(boo)");
sourcepub fn text_lines(&mut self, lines: &str) -> &mut Self
pub fn text_lines(&mut self, lines: &str) -> &mut Self
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");
sourcepub fn bytes(&mut self, b: &[u8]) -> &mut Self
pub fn bytes(&mut self, b: &[u8]) -> &mut Self
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(), "^%^");
sourcepub fn bytes_as_hex(&mut self, bs: &str) -> &mut Self
pub fn bytes_as_hex(&mut self, bs: &str) -> &mut Self
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(), "^%^");
sourcepub fn hex_to_bytes(s: &str) -> Vec<u8>
pub fn hex_to_bytes(s: &str) -> Vec<u8>
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]);
sourcepub fn bytes_to_hex(s: &[u8]) -> String
pub fn bytes_to_hex(s: &[u8]) -> String
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");