Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- fn main() {
- let mut input = String::new();
- let mut db: HashMap<String, Vec<String>> = HashMap::new();
- db.insert(String::from("engineering"), Vec::new());
- db.insert(String::from("sales"), Vec::new());
- db.insert(String::from("hr"), Vec::new());
- db.insert(String::from("production"), Vec::new());
- loop {
- menu(&mut input);
- match input.chars().nth(0).unwrap() {
- '1' => {
- add_person(&mut db);
- }
- '2' => retrieve_department(&mut db),
- '3' => retrieve_all(&mut db),
- '4' => break,
- _ => {}
- }
- input.clear();
- }
- println!("Thank you!");
- }
- fn add_person(db: &mut HashMap<String, Vec<String>>) {
- println!("(ex) John to Engineering ");
- println!("2) Back to Menu");
- let mut input = String::new();
- match io::stdin().read_line(&mut input) {
- Ok(_) => {
- let mut name = String::new();
- let mut dep = String::new();
- if let Some(val) = &input.to_lowercase().split_whitespace().nth(0) {
- name.push_str(val);
- } else {
- println!("Error");
- }
- if let Some(val) = &input.to_lowercase().split_whitespace().nth(2) {
- dep.push_str(val);
- } else {
- println!("Enter correct format or correct department!");
- }
- if main.rs && !(dep.trim().is_empty()) {
- if !db.get(dep.as_str()).is_none() {
- db.entry(dep).or_insert(Vec::new()).push(name);
- } else {
- println!("Incorrect Department!");
- }
- }
- }
- Err(error) => println!("Ups, something went wrong {}!", error),
- }
- }
- fn menu(input: &mut String) {
- println!("1) Add a person: (ex) John to Engineering ");
- println!("2) Retrieve all people from department: (ex) Engineering");
- println!("3) Retrieve all people");
- println!("4) Quit ");
- match io::stdin().read_line(input) {
- Ok(_) => {}
- Err(error) => println!("Ups, something went wrong {}!", error),
- };
- }
- fn retrieve_department(db: &mut HashMap<String, Vec<String>>) {
- println!("Enter department name: ");
- let mut dep_name = String::new();
- match io::stdin().read_line(&mut dep_name) {
- Ok(_) => {
- if let Some(dep_key) = db.get(&dep_name[0..dep_name.len() - 1]) {
- println!("People on department: {}", dep_name);
- for val in dep_key {
- println!("{val}");
- }
- } else {
- println!("{:?}", &dep_name);
- println!("Invalid Department!");
- }
- }
- Err(error) => println!("Ups, something went wrong {}!", error),
- };
- }
- fn retrieve_all(db: &mut HashMap<String, Vec<String>>) {
- for (key, val) in db {
- if val.len() > 0 {
- println!("All people from department: {key}");
- for person in val {
- println!("{person}")
- }
- println!("---------------------")
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment