book_datetime_tester/
book_datetime_tester.rs

1use std::io::{self, BufRead};
2use trivet::parse_from_string;
3use trivet::parsers::datetime::{is_date, is_time, parse_date_time};
4
5fn main() {
6    let stdin = io::stdin();
7    for line in stdin.lock().lines() {
8        match line {
9            Err(msg) => {
10                println!("Error: {}", msg);
11                break;
12            }
13            Ok(text) => {
14                // Test what the line contains.
15                let mut parser = parse_from_string(&text);
16                parser.consume_ws();
17                if is_date(&mut parser) {
18                    println!("is_date returns true");
19                }
20                if is_time(&mut parser) {
21                    println!("is_time returns true");
22                }
23                let datetime = parse_date_time(&mut parser);
24                match datetime {
25                    Err(msg) => {
26                        println!("Error: {}", msg);
27                    }
28                    Ok(Some(value)) => {
29                        println!("{}", value);
30                    }
31                    Ok(None) => {
32                        println!("Entry is not a date or time; ignoring.");
33                    }
34                }
35            }
36        }
37    }
38}