1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
//! Input/output utilities with proper `Result`-based error handling. //! Functions propagate the errors from Rust standard library. use std::error::Error; use std::io; use std::io::stdin; pub fn read_line() -> Result<String, io::Error> { let terminal = stdin(); let mut output = String::new(); terminal.read_line(&mut output)?; Ok(output) } pub fn read_i64() -> Result<i64, Box<dyn Error>> { let line = read_line()?; let number: i64 = line.trim().parse()?; Ok(number) }