1use noa_parser::bytes::matchers::match_number;
2use noa_parser::matcher::{Match, MatchSize};
3use noa_parser::recognizer::Recognizable;
4
5struct TokenNumber;
6
7impl Match<u8> for TokenNumber {
9 fn matcher(&self, data: &[u8]) -> (bool, usize) {
10 match_number(data)
11 }
12}
13
14impl MatchSize for TokenNumber {
16 fn size(&self) -> usize {
17 0
18 }
19}
20
21fn main() {
22 let data = b"123abc";
23 let mut scanner = noa_parser::scanner::Scanner::new(data);
24 let result = TokenNumber.recognize(&mut scanner);
25 println!("{:?}", result); if let Ok(Some(data)) = result {
28 let str_data = std::str::from_utf8(data).unwrap();
30 let result = str_data.parse::<usize>().unwrap();
32 println!("{}", result); }
34}