rustHow to create a HashMap of structs in Rust?
A HashMap of structs in Rust can be created using the HashMap type from the std::collections module. The HashMap type requires a key and a value type to be specified. The key type must implement the Eq and Hash traits, while the value type can be any type.
Example code
use std::collections::HashMap;
#[derive(Debug)]
struct Person {
name: String,
age: u32,
}
fn main() {
let mut map = HashMap::new();
map.insert("John", Person {
name: "John".to_string(),
age: 30,
});
map.insert("Alice", Person {
name: "Alice".to_string(),
age: 25,
});
println!("{:?}", map);
}
Output example
{"John": Person { name: "John", age: 30 }, "Alice": Person { name: "Alice", age: 25 }}
Code explanation
use std::collections::HashMap;: This imports theHashMaptype from thestd::collectionsmodule.#[derive(Debug)]: This is a Rust attribute that allows thePersonstruct to be printed to the console.let mut map = HashMap::new();: This creates a newHashMapwith no entries.map.insert("John", Person { ... });: This inserts a new entry into theHashMapwith akeyof type&strand avalueof typePerson.println!("{:?}", map);: This prints the contents of theHashMapto the console.
Helpful links
Related
- How to create a Rust HashMap with a string key?
- How to print a Rust HashMap?
- How to sort a Rust HashMap?
- How to clear a Rust HashMap?
- How to check if a Rust HashMap contains a key?
- How to build a Rust HashMap from an iterator?
- How to remove an element from a Rust HashMap if a condition is met?
- How to insert an element into a Rust HashMap if it does not already exist?
- How to convert the keys of a Rust HashMap to a vector?
More of Rust
- How to perform matrix operations in Rust?
- How to use binary regex in Rust?
- How to match a URL with a regex in Rust?
- Regex example to match multiline string in Rust?
- How to use regex lookahead in Rust?
- How to ignore case in Rust regex?
- How to use regex to match a double quote in Rust?
- How to match the end of a line in a Rust regex?
- How to make regex case insensitive in Rust?
- How to replace a capture group using Rust regex?
See more codes...