turbofish_data/
turbofish_data.rs1use noa_parser::bytes::primitives::number::Number;
2use noa_parser::bytes::token::Token;
3use noa_parser::errors::ParseResult;
4use noa_parser::recognizer::recognize;
5use noa_parser::visitor::Visitor;
6
7#[derive(Debug)]
8#[allow(dead_code)]
9struct Turbofish(usize);
10
11impl<'a> Visitor<'a, u8> for Turbofish {
13 fn accept(scanner: &mut noa_parser::scanner::Scanner<u8>) -> ParseResult<Self> {
14 recognize(Token::Colon, scanner)?;
16 recognize(Token::Colon, scanner)?;
17 recognize(Token::LessThan, scanner)?;
18 let number = Number::accept(scanner)?.0;
20 recognize(Token::GreaterThan, scanner)?;
22 Ok(Turbofish(number))
23 }
24}
25
26fn main() {
27 let data = b"::<45>garbage";
28 let mut scanner = noa_parser::scanner::Scanner::new(data);
29 let result = Turbofish::accept(&mut scanner);
30 println!("{:?}", result); }