IndexedLinkedHashMap   ![Latest Version] ![Downloads] ![Documentation]

An indexable LinkedHashMap. Written in Rust.

About

Bring your own ordering data structure. Uses the standard library's HashMap.

Examples

```rust fn main() { let mut ins = IndexedLinkedHashMap::, &str, usize>::new();

assert!(ins.remove("k") == None);
assert!(ins.len() == 0);
assert!(ins.keys().len() == 0);
assert!(ins.values().len() == 0);

ins.set("k", 1);

assert!(
    ins.remove("k")
        == Some(IndexedLinkedHashMapValue {
            index: Some(0),
            value: 1
        })
);
assert!(ins.len() == 0);
assert!(ins.keys().len() == 0);
assert!(ins.values().len() == 0);

} ```

```rust fn main() { let mut ins = IndexedLinkedHashMap::, &str, usize>::new();

ins.set("k", 1);

assert!(ins.len() == 1);
assert!(ins.keys().len() == 1);
assert!(ins.values().len() == 1);
assert!(ins.get("k") == Some(&1));

} ```

```rust

[derive(Clone, Debug)]

struct Line2D { id: String, p1: usize, p2: usize, }

fn main() { let mut ins = IndexedLinkedHashMap::, String, Line2D>::new(); let line = Line2D { id: String::from("1"), p1: 0, p2: 10, };

ins.set(line.to_owned().id, line);

} ```

```rust use std::collections::BinaryHeap;

fn main() { let mut ins = IndexedLinkedHashMap::, usize, bool>::new(); ins.set(2, false); ins.set(1, true);

assert!(ins.at(Some(1)) == Some(&true));

} ```