trivet 3.1.0

The trivet Parser Library
Documentation
use std::io::stdin;
use std::io::stdout;
use std::io::BufRead;
use std::io::Write;
use trivet::{numbers::NumberParser, parse_from_string};

pub fn main() {
    println!("Enter a number to see how Trivet parses it.  Enter a blank line to stop.");
    let numpar = NumberParser::new();
    print!("> ");
    let _ = stdout().flush();
    for line in stdin().lock().lines() {
        if line.is_err() {
            break;
        }
        let line = line.unwrap();

        // Consume any whitespace.
        let mut parser = parse_from_string(&line);
        parser.consume_ws();
        if parser.is_at_eof() {
            break;
        }

        // Try to read a number as pieces.
        let parts = numpar.get_parts(parser.borrow_core());
        println!("{:?}", parts);
        if parts.is_apparent_float() {
            let value: f64 = parts.into();
            println!("f64: {}", value);
        } else {
            let value: i128 = parts.into();
            println!("i128: {}", value);
        }

        // Go around again.
        print!("> ");
        let _ = stdout().flush();
    }
}