use elyze::errors::ParseResult;
use elyze::matcher::Match;
use elyze::recognizer::recognize_slice;
use elyze::scanner::Scanner;
struct Hello;
impl Match<u8> for Hello {
fn is_matching(&self, data: &[u8]) -> (bool, usize) {
let pattern = b"hello";
(&data[..pattern.len()] == pattern, pattern.len())
}
fn size(&self) -> usize {
5
}
}
fn main() -> ParseResult<()> {
let mut scanner = Scanner::new(b"hello world");
let hello_string = recognize_slice(Hello, &mut scanner)?;
println!("found: {}", String::from_utf8_lossy(hello_string)); print!(
"remaining: {:?}",
String::from_utf8_lossy(scanner.remaining())
);
Ok(())
}