p_rust 0.1.0

My rust practice
Documentation
use std::collections::{HashMap, HashSet};
use std::io;

fn get_user_input(title: &str) -> String {
    let mut user_input_str = String::new();
    println!("{}", title);
    io::stdin()
        .read_line(&mut user_input_str)
        .expect("Failed to read line");
    user_input_str
}

fn main() {
    let mut departments = HashMap::new();

    loop {
        let user_command = get_user_input("Enter command:\n  - Add [Someone] to [department]\n  - List departments\n  - List employees by [department]\n  - List all\n  - Quit");
        let mut command_iter = user_command.split_whitespace();
        let command = command_iter.next();

        let mut params = Vec::new();
        for word in command_iter {
            params.push(word);
        }

        match command {
            Some("Add") => {
                if params.len() == 3 && params[1] == "to" {
                    let employee_name = params[0];
                    let department = params[2];
                    let employees = departments.entry(department.to_string()).or_insert( HashSet::new());
                    employees.insert(employee_name.to_string());
                } else {
                    println!("Invalid params");
                }
            },
            Some("List") => {
                if params.len() == 1 && params[0] == "all" {
                    println!("{:#?}", departments);
                } else if params.len() == 1 && params[0] == "departments" {
                    println!("departments: {:?}", departments.keys());
                } else if params.len() == 3 && params[0] == "employees" && params[1] == "by" {
                    let department = params[2];
                    if departments.contains_key(department) {
                        println!("{}: {:?}", department, departments.get(department).unwrap());
                    } else {
                        println!("department not exist");
                    }
                } else {
                    println!("Invalid params");
                }
            },
            Some("Quit") => {
                break;
            }
            _ => println!("Invalid command")
        }
    }
}