mod io_fn {
pub mod ru {
use std::io;
#[allow(dead_code)]
pub fn user_input() -> String {
let mut input = String::new();
std::io::stdin()
.read_line(&mut input)
.expect("Could not read input");
input.trim().to_string()
}
}
pub mod num {
use crate::ru::user_input;
#[allow(dead_code)]
fn parse_to_num(input: String) -> i32 {
match input.trim().parse::<i32>() {
Ok(num) => num,
Err(_) => -1,
}
}
#[allow(dead_code)]
fn parse_to_float(input: String) -> f32 {
match input.trim().parse::<f32>() {
Ok(num) => num,
Err(_) => -1.0,
}
}
#[allow(dead_code)]
pub fn to_num() -> i32 {
let input: String = user_input();
parse_to_num(input)
}
#[allow(dead_code)]
pub fn to_float() -> f32 {
let input: String = user_input();
parse_to_float(input)
}
}
}
pub use crate::io_fn::ru;
pub use crate::io_fn::num;