Guest User

Untitled

a guest
Sep 28th, 2023
165
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Rust 3.15 KB | Source Code | 0 0
  1. fn main() {
  2.     let mut input = String::new();
  3.     let mut db: HashMap<String, Vec<String>> = HashMap::new();
  4.     db.insert(String::from("engineering"), Vec::new());
  5.     db.insert(String::from("sales"), Vec::new());
  6.     db.insert(String::from("hr"), Vec::new());
  7.     db.insert(String::from("production"), Vec::new());
  8.     loop {
  9.         menu(&mut input);
  10.         match input.chars().nth(0).unwrap() {
  11.             '1' => {
  12.                 add_person(&mut db);
  13.             }
  14.             '2' => retrieve_department(&mut db),
  15.             '3' => retrieve_all(&mut db),
  16.             '4' => break,
  17.             _ => {}
  18.         }
  19.         input.clear();
  20.     }
  21.     println!("Thank you!");
  22. }
  23. fn add_person(db: &mut HashMap<String, Vec<String>>) {
  24.     println!("(ex) John to Engineering ");
  25.     println!("2) Back to Menu");
  26.     let mut input = String::new();
  27.     match io::stdin().read_line(&mut input) {
  28.         Ok(_) => {
  29.             let mut name = String::new();
  30.             let mut dep = String::new();
  31.             if let Some(val) = &input.to_lowercase().split_whitespace().nth(0) {
  32.                 name.push_str(val);
  33.             } else {
  34.                 println!("Error");
  35.             }
  36.             if let Some(val) = &input.to_lowercase().split_whitespace().nth(2) {
  37.                 dep.push_str(val);
  38.             } else {
  39.                 println!("Enter correct format or correct department!");
  40.             }
  41.             if main.rs && !(dep.trim().is_empty()) {
  42.                 if !db.get(dep.as_str()).is_none() {
  43.                     db.entry(dep).or_insert(Vec::new()).push(name);
  44.                 } else {
  45.                     println!("Incorrect Department!");
  46.                 }
  47.             }
  48.         }
  49.         Err(error) => println!("Ups, something went wrong {}!", error),
  50.     }
  51. }
  52. fn menu(input: &mut String) {
  53.     println!("1) Add a person: (ex) John to Engineering ");
  54.     println!("2) Retrieve all people from department: (ex) Engineering");
  55.     println!("3) Retrieve all people");
  56.     println!("4) Quit ");
  57.     match io::stdin().read_line(input) {
  58.         Ok(_) => {}
  59.         Err(error) => println!("Ups, something went wrong {}!", error),
  60.     };
  61. }
  62. fn retrieve_department(db: &mut HashMap<String, Vec<String>>) {
  63.     println!("Enter department name: ");
  64.     let mut dep_name = String::new();
  65.     match io::stdin().read_line(&mut dep_name) {
  66.         Ok(_) => {
  67.             if let Some(dep_key) = db.get(&dep_name[0..dep_name.len() - 1]) {
  68.                 println!("People on department: {}", dep_name);
  69.                 for val in dep_key {
  70.                     println!("{val}");
  71.                 }
  72.             } else {
  73.                 println!("{:?}", &dep_name);
  74.                 println!("Invalid Department!");
  75.             }
  76.         }
  77.         Err(error) => println!("Ups, something went wrong {}!", error),
  78.     };
  79. }
  80. fn retrieve_all(db: &mut HashMap<String, Vec<String>>) {
  81.     for (key, val) in db {
  82.         if val.len() > 0 {
  83.             println!("All people from department: {key}");
  84.             for person in val {
  85.                 println!("{person}")
  86.             }
  87.             println!("---------------------")
  88.         }
  89.     }
  90. }
Advertisement
Add Comment
Please, Sign In to add comment