public/subjects/macro_map
michele 474947371a docs(macro_map): fix small typos 2023-10-04 11:29:08 +01:00
..
README.md docs(macro_map): fix small typos 2023-10-04 11:29:08 +01:00

README.md

macro_map

Instructions

Create a macro rule called hash_map to initialize and declare a HashMap at the same time, very similar to what vec! macro does for Vector.

Your macro should accept both leading and non leading commas syntax to be more flexible in terms of coding style and reflect the language general style.

Expected Macro

macro_rules! hash_map {
}

Usage

Here is a possible program to test your function,

use macro_map::hash_map;
use std::collections::HashMap;

fn main() {
    let empty: HashMap<u32, u32> = hash_map!();
    let new = hash_map!('a' => 22, 'b' => 1, 'c' => 10);
    let nested = hash_map!(
        "first" => hash_map!(
            "Rob" => 32.2,
            "Gen" => 44.1,
            "Chris" => 10.,
        ),
        "second" => hash_map!()
    );
    println!("{:?}", empty);
    println!("{:?}", new);
    println!("{:?}", nested);
}

And its output:

$ cargo run
{}
{'b': 1, 'a': 22, 'c': 10}
{"first": {"Rob": 32.2, "Gen": 44.1, "Chris": 10.0}, "second": {}}
$