use noa_parser::bytes::primitives::number::Number;
use noa_parser::bytes::token::Token;
use noa_parser::errors::ParseResult;
use noa_parser::recognizer::recognize;
use noa_parser::visitor::Visitor;
#[derive(Debug)]
#[allow(dead_code)]
struct Turbofish(usize);
impl<'a> Visitor<'a, u8> for Turbofish {
fn accept(scanner: &mut noa_parser::scanner::Scanner<u8>) -> ParseResult<Self> {
recognize(Token::Colon, scanner)?;
recognize(Token::Colon, scanner)?;
recognize(Token::LessThan, scanner)?;
let number = Number::accept(scanner)?.0;
recognize(Token::GreaterThan, scanner)?;
Ok(Turbofish(number))
}
}
fn main() {
let data = b"::<45>garbage";
let mut scanner = noa_parser::scanner::Scanner::new(data);
let result = Turbofish::accept(&mut scanner);
println!("{:?}", result); }