use noa_parser::bytes::matchers::match_number;
use noa_parser::matcher::{Match, MatchSize};
use noa_parser::recognizer::Recognizable;
struct TokenNumber;
impl Match<u8> for TokenNumber {
fn matcher(&self, data: &[u8]) -> (bool, usize) {
match_number(data)
}
}
impl MatchSize for TokenNumber {
fn size(&self) -> usize {
0
}
}
fn main() {
let data = b"123abc";
let mut scanner = noa_parser::scanner::Scanner::new(data);
let result = TokenNumber.recognize(&mut scanner);
println!("{:?}", result); if let Ok(Some(data)) = result {
let str_data = std::str::from_utf8(data).unwrap();
let result = str_data.parse::<usize>().unwrap();
println!("{}", result); }
}