from_user/
lib.rs

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