integers/
integers.rs

1use trivet::errors::error;
2use trivet::errors::ParseResult;
3
4fn parse_unsigned_integer(parser: &mut trivet::Parser) -> ParseResult<u64> {
5    let result = parser.take_while(|ch| ch.is_ascii_digit());
6    match result.parse::<u64>() {
7        Ok(number) => Ok(number),
8        Err(err) => Err(error(parser.loc(), err)),
9    }
10}
11
12fn main() -> ParseResult<()> {
13    // Make a new parser and wrap the standard input.
14    let mut parser = trivet::parse_from_stdin();
15    match parse_unsigned_integer(&mut parser) {
16        Err(err) => {
17            println!("{}", err);
18        }
19        Ok(value) => {
20            println!("{}", value);
21        }
22    }
23    Ok(())
24}