# readput [crates.io](https://crates.io/crates/readput) Fast and easy stdin input parsing for competitive programming in rust. # Usage **Note:** The inputs can be on the same line, or not, it doesn't make a difference. They are separated by spaces or line breaks. Excess inputs are getting cached for the next ```read()``` call. ## Create a Scanner Create a new ```Scanner```. (Only ASCII support for now) ```Rust use readput::AsciiScanner; use readput::Scanner; let mut cin = AsciiScanner::new(); ``` # Read a single value **Note:** They have to impl. FromStr and Debug. ```Rust let v = read!(cin, i128); ``` # Read a tuple ```Rust let (a, b, c) = read!(cin, (String, i128, u32)); let (d, e) = read!(cin, (i32, i32)); ``` # Read a vector of tuples Read a vector of tuples. 3 is the number of tuples in the vector to read. ```Rust let vec = read_vec!(cin, 3, (u32, String)); ``` # Read a vector of single values Read a vector of single values. 3 is the number of elements to read. **Note:** They also have to impl. FromStr and Debug. ```Rust let vec: Vec = read_vec!(cin, 3, u32); ``` # Iterate over input Iterate over input. This will iterate forever. (Blocks until new input is entered). ```Rust for (a, b) in iter!(cin, (String, u32)) { println!("{} {}", a, b); } ```