pub fn input_ok<T: FromStr>() -> Result<T, Box<dyn Error>>where <T as FromStr>::Err: Error + 'static,
alice - users.rust-lang.org https://users.rust-lang.org/t/why-is-it-so-difficult-to-get-user-input-in-rust/27444/3