promptput 0.1.1

A simple crate for handling terminal input.
Documentation
#![forbid(unsafe_code)]

use std::error::Error;
use std::io;
use std::str::FromStr;

fn get_user_input<T: FromStr>(prompt: &str) -> Result<T, Box<dyn Error>> {
    println!("{}", prompt);

    let mut user_input: String = String::new();

    io::stdin().read_line(&mut user_input)?;

    let number: T = user_input
        .trim()
        .parse()
        .map_err(|_| "Please enter a valid number!")?;

    Ok(number)
}

pub fn input<T: FromStr>(prompt: &str) -> T {
    loop {
        match get_user_input(prompt) {
            Ok(count) => {
                return count;
            }
            Err(error) => {
                println!("Error: {}", error);
            }
        };
    }
}