Skip to content

Latest commit

 

History

History
32 lines (25 loc) · 993 Bytes

how-to-use-enum-as-hashmap-key-in-rust.md

File metadata and controls

32 lines (25 loc) · 993 Bytes

How to use enum as hashmap key in Rust

// plain

Enums in Rust can be used as hashmap keys by implementing the Eq and Hash traits. This can be done by adding #[derive(Eq, Hash)] to the enum definition. For example:

#[derive(Eq, Hash)]
enum Color {
    Red,
    Blue,
    Green,
}

fn main() {
    use std::collections::HashMap;

    let mut colors = HashMap::new();
    colors.insert(Color::Red, "red");
    colors.insert(Color::Blue, "blue");
    colors.insert(Color::Green, "green");

    println!("{:?}", colors);
}

The output of this code is {Color::Red: "red", Color::Blue: "blue", Color::Green: "green"}. The #[derive(Eq, Hash)] annotation allows the enum to be used as a key in the hashmap.

Helpful links

group: rust-enums