read_io 0.1.1

A macro to read user input easily.
Documentation
#[macro_export]
macro_rules! read(
    () => {{
        use std::io::stdin;
        use std::str::{FromStr};

        let mut input = String::new();
        stdin().read_line(&mut input).expect("Could not read stdin");
        let trim = input.trim();
        FromStr::from_str(trim)
    }};
    ($text:expr) => {{
        use std::io::{stdout, Write};

        print!("{}", $text);
        stdout().flush().expect("Could not flush stdout.");
        read!()
    }
    }
);

#[test]
fn tests() {
    use std::str::FromStr;

    let input = String::from("20\r\n");
    let trim = input.trim();
    let num: i32 = FromStr::from_str(trim).unwrap();
    assert_eq!(20, num);

    let input = String::from("test\r\n\r\r\r\n");
    let trim = input.trim();
    let test: String = FromStr::from_str(trim).unwrap();
    assert_eq!("test", test);
}