#input #terminal #error-handling #recoverable-errors #custom-messages

inputparser

Terminal inputs made psuedo code like simple, like Python like simple ...... probably xD

13 releases

0.1.72 Jul 29, 2020
0.1.71 Jul 28, 2020

#776 in Command-line interface

Download history 57/week @ 2024-06-29 145/week @ 2024-07-27

200 downloads per month

MIT license

6KB
62 lines

crates.io version Crates.io Downloads crates.io license Discord image

inputparser

Note: Thanks to @Restioson, @ThatsNoMoon and @kangalioo for helping me write the code

Now Rust inputs are almost as simple as Python

Terminal inputs are now easier than ever. Replacing over 5 lines of codes with just 1 function.

Supports all formats that FromStr Supports

Instead of

let mut var: String = String::new();
io::stdin().read_line(&mut var).unwrap();
let var: i32 = var.trim().parse().unwrap();

why not

let var: i32 = input(Def);

and it doesn't panic when wrong format is entered (when default arg [Def]).

Or you can choose to make it panic too.

Usage

[dependencies]
inputparser = "0.1"

Example

extern crate inputparser;
use inputparsertest::{input, input_w_msg, inputfn, ErHandle::*};

fn main() {
    //for Default continue message "Input not supported" when Err
    let i: i32 = input(Def);

    //for custom panic message when Err
    let j: f64 = input(Pnc("Panic Message"));

    //for custom continue message when Err
    let k: u128 = input(Msg("Continue Message"));

    //for custom loop message and continue/error message
    let l: isize = input_w_msg("Enter the number",Msg("Please enter valid number"));

    //for more Rust way for handling the error
    let m: usize = inputfn(|| /*use panic if required*/ println!("Continue Error Message"));
 
    println!("{} {} {} {} {}", i, j, k, l, m);
}

No runtime deps