havarnov/multimap

Rust

79

71 commits

updated May 11, 2025

See the code

README

crates.io docs.rs

Multimap implementation for Rust

This is a multimap implementation for Rust. Implemented as a thin wrapper around std::collections::HashMap.

Example

extern crate multimap;

use multimap::MultiMap;

fn main () {
    let mut map = MultiMap::new();

    map.insert("key1", 42);
    map.insert("key1", 1337);
    map.insert("key2", 2332);

    assert_eq!(map["key1"], 42);
    assert_eq!(map.get("key1"), Some(&42));
    assert_eq!(map.get_vec("key1"), Some(&vec![42, 1337]));
}

Changelog

0.10.1

  • Fix docs for flat_iter #45
  • Clippy warnings

0.10.0

  • Added FromIterator<(K, Vec<V>)> #48.

0.9.1

  • Fixes a bug where iteration would panic on empty (inner) vectors #46.

0.9.0

  • Added flat_iter and flat_iter_mut
  • Fixed bug where get and get_mut could panic.

0.8.3

  • multimap! macro fixes; allow trailing comma, naming hygiene and create with enough capacity for all elements.

0.8.2

  • Added #![forbid(unsafe_code)].

0.8.1

  • Fixed wrong link to documentation in Cargo.toml.

0.8.0

  • Added MultiMap::insert_many.
  • Added MultiMap::insert_many_from_slice.

0.7.0

  • Added possibility to replace the default hasher for the underlying HashMap.
  • Fix build warning by removing an unnecessary mut.

License

Licensed under either of

Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.

havarnov/multimap

Rust

79

71 commits

updated May 11, 2025

See the code

README

crates.io docs.rs

Multimap implementation for Rust

This is a multimap implementation for Rust. Implemented as a thin wrapper around std::collections::HashMap.

Example

extern crate multimap;

use multimap::MultiMap;

fn main () {
    let mut map = MultiMap::new();

    map.insert("key1", 42);
    map.insert("key1", 1337);
    map.insert("key2", 2332);

    assert_eq!(map["key1"], 42);
    assert_eq!(map.get("key1"), Some(&42));
    assert_eq!(map.get_vec("key1"), Some(&vec![42, 1337]));
}

Changelog

0.10.1

  • Fix docs for flat_iter #45
  • Clippy warnings

0.10.0

  • Added FromIterator<(K, Vec<V>)> #48.

0.9.1

  • Fixes a bug where iteration would panic on empty (inner) vectors #46.

0.9.0

  • Added flat_iter and flat_iter_mut
  • Fixed bug where get and get_mut could panic.

0.8.3

  • multimap! macro fixes; allow trailing comma, naming hygiene and create with enough capacity for all elements.

0.8.2

  • Added #![forbid(unsafe_code)].

0.8.1

  • Fixed wrong link to documentation in Cargo.toml.

0.8.0

  • Added MultiMap::insert_many.
  • Added MultiMap::insert_many_from_slice.

0.7.0

  • Added possibility to replace the default hasher for the underlying HashMap.
  • Fix build warning by removing an unnecessary mut.

License

Licensed under either of

Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.

Project health

Overall

3.1/10

Maintained

0/10

Code review

4/10
OpenSSF Scorecard

crates.io

Latest release

0.10.1 · May 11, 2025

Releases this year

0

Significant stargazers

Glen De Cauwsemaecker

262 followers · starred Dec 2024

Vitalii Kryvenko

95 followers · starred Aug 2020

xixi

286 followers · starred Mar 2021