1use elyze::matcher::Match;
2use elyze::recognizer::Recognizable;
3use elyze::scanner::Scanner;
4
5#[derive(Debug)]
7struct Hello;
8
9impl Match<u8> for Hello {
11 fn is_matching(&self, data: &[u8]) -> (bool, usize) {
12 let pattern = b"hello";
14 (&data[..pattern.len()] == pattern, pattern.len())
16 }
17
18 fn size(&self) -> usize {
19 5
20 }
21}
22
23fn main() {
24 let mut scanner = Scanner::new(b"hello world");
25 let data = Hello.recognize(&mut scanner).expect("failed to parse");
26
27 if let Some(hello) = data {
28 println!("found: {hello:?}"); print!(
30 "remaining: {:?}",
31 String::from_utf8_lossy(scanner.remaining())
32 ); } else {
34 println!("not found");
35 }
36}