9951 explained code solutions for 126 technologies


rustHow to use an enum as a key in a Rust HashMap?


Enums can be used as keys in a Rust HashMap by implementing the Eq and Hash traits.

use std::collections::HashMap;

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

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

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

Output example

{Color::Red: "red", Color::Blue: "blue", Color::Green: "green"}

Code explanation

  1. #[derive(Eq, Hash, PartialEq)]: This line is used to derive the Eq and Hash traits for the Color enum. This allows the enum to be used as a key in a HashMap.

  2. map.insert(Color::Red, "red"): This line inserts a key-value pair into the HashMap. The key is the Color::Red enum and the value is the string "red".

Helpful links

Edit this code on GitHub