book_building_parse_integer_2/
book_building_parse_integer_2.rs1fn parse_unsigned_integer(parser: &mut trivet::Parser) -> trivet::errors::ParseResult<u64> {
2 let result = parser.take_while(|ch| ch.is_ascii_digit());
3 match result.parse::<u64>() {
4 Ok(number) => Ok(number),
5 Err(err) => Err(trivet::errors::error(parser.loc(), err)),
6 }
7}
8
9fn main() {
10 let mut parser = trivet::parse_from_stdin();
11 match parse_unsigned_integer(&mut parser) {
12 Ok(value) => println!("{}", value),
13 Err(err) => println!("ERROR: {}", err),
14 }
15}