rustHow to use an enum in a Rust HashMap?
Enums can be used as keys in a Rust HashMap. To do this, the enum must implement the Eq
and Hash
traits.
Example code
use std::collections::HashMap;
#[derive(Eq, Hash, PartialEq)]
enum Color {
Red,
Blue,
Green,
}
fn main() {
let mut colors = HashMap::new();
colors.insert(Color::Red, "red");
colors.insert(Color::Blue, "blue");
colors.insert(Color::Green, "green");
println!("{:?}", colors);
}
Output example
{Color::Red: "red", Color::Blue: "blue", Color::Green: "green"}
Code explanation
-
#[derive(Eq, Hash, PartialEq)]
: This line is used to derive theEq
,Hash
, andPartialEq
traits for theColor
enum. This is necessary for the enum to be used as a key in a HashMap. -
let mut colors = HashMap::new();
: This line creates a new empty HashMap. -
colors.insert(Color::Red, "red");
: This line inserts a key-value pair into the HashMap. The key is theColor::Red
enum variant, and the value is the string"red"
.
Helpful links
Related
- How to convert a Rust HashMap to a BTreeMap?
- How to compare two Rust HashMaps?
- How to convert a Rust HashMap to a JSON string?
- How to clone a Rust HashMap?
- How to build a Rust HashMap from an iterator?
- How to use an enum as a key in a Rust HashMap?
- How to check if a Rust HashMap contains a key?
- How to delete an entry from a Rust HashMap?
- How to clear a Rust HashMap?
More of Rust
- How to match a URL with a regex in Rust?
- How to replace a capture group using Rust regex?
- How to split a string with Rust regex?
- How to match the end of a line in a Rust regex?
- How to use regex with bytes in Rust?
- How to replace strings using Rust regex?
- Regex example to match multiline string in Rust?
- How to use regex lookahead in Rust?
- How to match whitespace with a regex in Rust?
- Hashshet example in Rust
See more codes...