@@ -15,7 +15,8 @@ indexmap
15
15
.. |rustc | image :: https://img.shields.io/badge/rust-1.18%2B-orange.svg
16
16
.. _rustc : https://img.shields.io/badge/rust-1.18%2B-orange.svg
17
17
18
- A safe, pure-Rust hash table which preserves insertion order.
18
+ A safe, pure-Rust hash table which preserves (in a limited sense) insertion
19
+ order.
19
20
20
21
This crate implements compact map and set data-structures,
21
22
where the iteration order of the keys is independent from their hash or
@@ -72,30 +73,6 @@ which is roughly:
72
73
73
74
.. _PR45282 : https://github.com/rust-lang/rust/pull/45282
74
75
75
- Interesting Features
76
- --------------------
77
-
78
- - Insertion order is preserved (``.swap_remove() `` perturbs the order, like the method name says).
79
- - Implements ``.pop() -> Option<(K, V)> `` in O(1) time.
80
- - ``IndexMap::new() `` is empty and uses no allocation until you insert something.
81
- - Lookup key-value pairs by index and vice versa.
82
- - No ``unsafe ``.
83
- - Supports ``IndexMut ``.
84
-
85
-
86
- Where to go from here?
87
- ----------------------
88
-
89
- - Ideas and PRs for how to implement insertion-order preserving remove (for example tombstones)
90
- are welcome. The plan is to split the crate into two hash table implementations
91
- a) the current compact index space version and b) the full insertion order version.
92
-
93
-
94
- Ideas that we already did
95
- -------------------------
96
-
97
- - It can be an *indexable * ordered map in the current fashion
98
- (This was implemented in 0.2.0, for potential use as a graph datastructure).
99
76
100
77
- Idea for more cache efficient lookup (This was implemented in 0.1.2).
101
78
@@ -109,6 +86,16 @@ Ideas that we already did
109
86
Recent Changes
110
87
==============
111
88
89
+ - 1.3.0
90
+
91
+ - The deprecation messages in the previous version have been removed.
92
+ (The methods have not otherwise changed.) Docs for removal methods have been
93
+ improved.
94
+ - From Rust 1.36, this crate supports being built **without std **, requiring
95
+ ``alloc `` instead. This is enabled automatically when it is detected that
96
+ ``std `` is not available. There is no crate feature to enable/disable to
97
+ trigger this. The new build-dep ``autocfg `` enables this.
98
+
112
99
- 1.2.0
113
100
114
101
- Plain ``.remove() `` now has a deprecation message, it informs the user
0 commit comments