from_user/
lib.rs

1// Version 0.2.3
2
3use std::{i32, io};
4
5const SRS:&str = "There has been a Serious Error with Liberary of Input. Please Contact the Developers";
6
7pub fn single_line() -> String{
8    let mut _flag = "ok";
9    let mut string_to_get_in = String::new();
10    let mut string_to_return = String::new();
11    match io::stdin().read_line(&mut string_to_get_in){
12        Ok(_) => string_to_return = string_to_get_in,
13        Err(_) => println!("Please Enter a Valid String"),
14    }
15    // TODO : Add a flag system which will alert the system if there is any problem
16    return string_to_return;
17}
18pub fn number() -> i32{
19    let mut _flag = "ok";
20    let mut string_to_get_in = String::new();
21    let mut string_to_return = String::new();
22    match io::stdin().read_line(&mut string_to_get_in){
23        Ok(_) => string_to_return = string_to_get_in.trim().to_string(),
24        Err(_) => _flag = "er",
25    }
26    // Checking if it is a String one by one
27    let word_length = string_to_return.len();
28    let mut loop_variable = 0;
29    while loop_variable < word_length {
30        let char_to_check = string_to_return.chars().nth(loop_variable).expect(SRS);
31        if !char_to_check.is_ascii_digit() {
32            println!("Please enter a Numerics only");
33            return number();
34        }
35        loop_variable += 1;
36    }
37    //Conversion of string to int
38    let int_to_return = match string_to_return.trim().parse() {
39        Ok(num) => num,
40        Err(_) => {println!("Only Number Supported , Try Again:");return number();},
41    };
42    return int_to_return;
43}