14 releases (9 breaking)

Uses old Rust 2015

0.10.0 Jan 15, 2024
0.9.1 Oct 23, 2023
0.9.0 Mar 21, 2023
0.8.3 Mar 15, 2021
0.1.0 Apr 24, 2015

#41 in Data structures

Download history 497820/week @ 2023-11-07 511432/week @ 2023-11-14 420896/week @ 2023-11-21 540174/week @ 2023-11-28 553135/week @ 2023-12-05 547127/week @ 2023-12-12 431708/week @ 2023-12-19 218245/week @ 2023-12-26 491473/week @ 2024-01-02 537990/week @ 2024-01-09 588985/week @ 2024-01-16 586463/week @ 2024-01-23 597938/week @ 2024-01-30 606498/week @ 2024-02-06 583813/week @ 2024-02-13 514088/week @ 2024-02-20

2,406,638 downloads per month
Used in 1,779 crates (97 directly)

MIT/Apache

55KB
1K SLoC

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.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.

Dependencies

~175KB