]> git.proxmox.com Git - rustc.git/blame - vendor/indexmap/RELEASES.md
New upstream version 1.68.2+dfsg1
[rustc.git] / vendor / indexmap / RELEASES.md
CommitLineData
6522a427
EL
1- 1.9.2
2
3 - `IndexMap` and `IndexSet` both implement `arbitrary::Arbitrary<'_>` and
4 `quickcheck::Arbitrary` if those optional dependency features are enabled.
5
923072b8
FG
6- 1.9.1
7
8 - The MSRV now allows Rust 1.56.0 as well. However, currently `hashbrown`
9 0.12.1 requires 1.56.1, so users on 1.56.0 should downgrade that to 0.12.0
10 until there is a later published version relaxing its requirement.
11
12- 1.9.0
13
14 - **MSRV**: Rust 1.56.1 or later is now required.
15
16 - The `hashbrown` dependency has been updated to version 0.12.
17
18 - `IterMut` and `ValuesMut` now implement `Debug`.
19
20 - The new `IndexMap::shrink_to` and `IndexSet::shrink_to` methods shrink
21 the capacity with a lower bound.
22
23 - The new `IndexMap::move_index` and `IndexSet::move_index` methods change
24 the position of an item from one index to another, shifting the items
25 between to accommodate the move.
26
27- 1.8.2
28
29 - Bump the `rustc-rayon` dependency, for compiler use only.
30
31- 1.8.1
32
33 - The new `IndexSet::replace_full` will return the index of the item along
34 with the replaced value, if any, by @zakcutner in PR [222].
35
36[222]: https://github.com/bluss/indexmap/pull/222
37
38- 1.8.0
39
40 - The new `IndexMap::into_keys` and `IndexMap::into_values` will consume
41 the map into keys or values, respectively, matching Rust 1.54's `HashMap`
42 methods, by @taiki-e in PR [195].
43
44 - More of the iterator types implement `Debug`, `ExactSizeIterator`, and
45 `FusedIterator`, by @cuviper in PR [196].
46
47 - `IndexMap` and `IndexSet` now implement rayon's `ParallelDrainRange`,
48 by @cuviper in PR [197].
49
50 - `IndexMap::with_hasher` and `IndexSet::with_hasher` are now `const`
51 functions, allowing static maps and sets, by @mwillsey in PR [203].
52
53 - `IndexMap` and `IndexSet` now implement `From` for arrays, matching
54 Rust 1.56's implementation for `HashMap`, by @rouge8 in PR [205].
55
56 - `IndexMap` and `IndexSet` now have methods `sort_unstable_keys`,
57 `sort_unstable_by`, `sorted_unstable_by`, and `par_*` equivalents,
58 which sort in-place without preserving the order of equal items, by
59 @bhgomes in PR [211].
60
61[195]: https://github.com/bluss/indexmap/pull/195
62[196]: https://github.com/bluss/indexmap/pull/196
63[197]: https://github.com/bluss/indexmap/pull/197
64[203]: https://github.com/bluss/indexmap/pull/203
65[205]: https://github.com/bluss/indexmap/pull/205
66[211]: https://github.com/bluss/indexmap/pull/211
67
68- 1.7.0
69
70 - **MSRV**: Rust 1.49 or later is now required.
71
72 - The `hashbrown` dependency has been updated to version 0.11.
73
74- 1.6.2
75
76 - Fixed to match `std` behavior, `OccupiedEntry::key` now references the
77 existing key in the map instead of the lookup key, by @cuviper in PR [170].
78
79 - The new `Entry::or_insert_with_key` matches Rust 1.50's `Entry` method,
80 passing `&K` to the callback to create a value, by @cuviper in PR [175].
81
82[170]: https://github.com/bluss/indexmap/pull/170
83[175]: https://github.com/bluss/indexmap/pull/175
84
85- 1.6.1
86
87 - The new `serde_seq` module implements `IndexMap` serialization as a
88 sequence to ensure order is preserved, by @cuviper in PR [158].
89
90 - New methods on maps and sets work like the `Vec`/slice methods by the same name:
91 `truncate`, `split_off`, `first`, `first_mut`, `last`, `last_mut`, and
92 `swap_indices`, by @cuviper in PR [160].
93
94[158]: https://github.com/bluss/indexmap/pull/158
95[160]: https://github.com/bluss/indexmap/pull/160
96
97- 1.6.0
98
99 - **MSRV**: Rust 1.36 or later is now required.
100
101 - The `hashbrown` dependency has been updated to version 0.9.
102
103- 1.5.2
104
105 - The new "std" feature will force the use of `std` for users that explicitly
106 want the default `S = RandomState`, bypassing the autodetection added in 1.3.0,
107 by @cuviper in PR [145].
108
109[145]: https://github.com/bluss/indexmap/pull/145
110
111- 1.5.1
112
113 - Values can now be indexed by their `usize` position by @cuviper in PR [132].
114
115 - Some of the generic bounds have been relaxed to match `std` by @cuviper in PR [141].
116
117 - `drain` now accepts any `R: RangeBounds<usize>` by @cuviper in PR [142].
118
119[132]: https://github.com/bluss/indexmap/pull/132
120[141]: https://github.com/bluss/indexmap/pull/141
121[142]: https://github.com/bluss/indexmap/pull/142
122
123- 1.5.0
124
125 - **MSRV**: Rust 1.32 or later is now required.
126
127 - The inner hash table is now based on `hashbrown` by @cuviper in PR [131].
128 This also completes the method `reserve` and adds `shrink_to_fit`.
129
130 - Add new methods `get_key_value`, `remove_entry`, `swap_remove_entry`,
131 and `shift_remove_entry`, by @cuviper in PR [136]
132
133 - `Clone::clone_from` reuses allocations by @cuviper in PR [125]
134
135 - Add new method `reverse` by @linclelinkpart5 in PR [128]
136
137[125]: https://github.com/bluss/indexmap/pull/125
138[128]: https://github.com/bluss/indexmap/pull/128
139[131]: https://github.com/bluss/indexmap/pull/131
140[136]: https://github.com/bluss/indexmap/pull/136
141
142- 1.4.0
143
144 - Add new method `get_index_of` by @Thermatrix in PR [115] and [120]
145
146 - Fix build script rebuild-if-changed configuration to use "build.rs";
147 fixes issue [123]. Fix by @cuviper.
148
149 - Dev-dependencies (rand and quickcheck) have been updated. The crate's tests
150 now run using Rust 1.32 or later (MSRV for building the crate has not changed).
151 by @kjeremy and @bluss
152
153[123]: https://github.com/bluss/indexmap/issues/123
154[115]: https://github.com/bluss/indexmap/pull/115
155[120]: https://github.com/bluss/indexmap/pull/120
156
157- 1.3.2
158
159 - Maintenance update to regenerate the published `Cargo.toml`.
160
161- 1.3.1
162
163 - Maintenance update for formatting and `autocfg` 1.0.
164
165- 1.3.0
166
167 - The deprecation messages in the previous version have been removed.
168 (The methods have not otherwise changed.) Docs for removal methods have been
169 improved.
170 - From Rust 1.36, this crate supports being built **without std**, requiring
171 `alloc` instead. This is enabled automatically when it is detected that
172 `std` is not available. There is no crate feature to enable/disable to
173 trigger this. The new build-dep `autocfg` enables this.
174
175- 1.2.0
176
177 - Plain `.remove()` now has a deprecation message, it informs the user
178 about picking one of the removal functions `swap_remove` and `shift_remove`
179 which have different performance and order semantics.
180 Plain `.remove()` will not be removed, the warning message and method
181 will remain until further.
182
183 - Add new method `shift_remove` for order preserving removal on the map,
184 and `shift_take` for the corresponding operation on the set.
185
186 - Add methods `swap_remove`, `swap_remove_entry` to `Entry`.
187
188 - Fix indexset/indexmap to support full paths, like `indexmap::indexmap!()`
189
190 - Internal improvements: fix warnings, deprecations and style lints
191
192- 1.1.0
193
194 - Added optional feature `"rayon"` that adds parallel iterator support
195 to `IndexMap` and `IndexSet` using Rayon. This includes all the regular
196 iterators in parallel versions, and parallel sort.
197
198 - Implemented `Clone` for `map::{Iter, Keys, Values}` and
199 `set::{Difference, Intersection, Iter, SymmetricDifference, Union}`
200
201 - Implemented `Debug` for `map::{Entry, IntoIter, Iter, Keys, Values}` and
202 `set::{Difference, Intersection, IntoIter, Iter, SymmetricDifference, Union}`
203
204 - Serde trait `IntoDeserializer` are implemented for `IndexMap` and `IndexSet`.
205
206 - Minimum Rust version requirement increased to Rust 1.30 for development builds.
207
208- 1.0.2
209
210 - The new methods `IndexMap::insert_full` and `IndexSet::insert_full` are
211 both like `insert` with the index included in the return value.
212
213 - The new method `Entry::and_modify` can be used to modify occupied
214 entries, matching the new methods of `std` maps in Rust 1.26.
215
216 - The new method `Entry::or_default` inserts a default value in unoccupied
217 entries, matching the new methods of `std` maps in Rust 1.28.
218
219- 1.0.1
220
221 - Document Rust version policy for the crate (see rustdoc)
222
223- 1.0.0
224
225 - This is the 1.0 release for `indexmap`! (the crate and datastructure
226 formerly known as “ordermap”)
227 - `OccupiedEntry::insert` changed its signature, to use `&mut self` for
228 the method receiver, matching the equivalent method for a standard
229 `HashMap`. Thanks to @dtolnay for finding this bug.
230 - The deprecated old names from ordermap were removed: `OrderMap`,
231 `OrderSet`, `ordermap!{}`, `orderset!{}`. Use the new `IndexMap`
232 etc names instead.
233
234- 0.4.1
235
236 - Renamed crate to `indexmap`; the `ordermap` crate is now deprecated
237 and the types `OrderMap/Set` now have a deprecation notice.
238
239- 0.4.0
240
241 - This is the last release series for this `ordermap` under that name,
242 because the crate is **going to be renamed** to `indexmap` (with types
243 `IndexMap`, `IndexSet`) and no change in functionality!
244 - The map and its associated structs moved into the `map` submodule of the
245 crate, so that the map and set are symmetric
246
247 + The iterators, `Entry` and other structs are now under `ordermap::map::`
248
249 - Internally refactored `OrderMap<K, V, S>` so that all the main algorithms
250 (insertion, lookup, removal etc) that don't use the `S` parameter (the
251 hasher) are compiled without depending on `S`, which reduces generics bloat.
252
253 - `Entry<K, V>` no longer has a type parameter `S`, which is just like
254 the standard `HashMap`'s entry.
255
256 - Minimum Rust version requirement increased to Rust 1.18
257
258- 0.3.5
259
260 - Documentation improvements
261
262- 0.3.4
263
264 - The `.retain()` methods for `OrderMap` and `OrderSet` now
265 traverse the elements in order, and the retained elements **keep their order**
266 - Added new methods `.sort_by()`, `.sort_keys()` to `OrderMap` and
267 `.sort_by()`, `.sort()` to `OrderSet`. These methods allow you to
268 sort the maps in place efficiently.
269
270- 0.3.3
271
272 - Document insertion behaviour better by @lucab
273 - Updated dependences (no feature changes) by @ignatenkobrain
274
275- 0.3.2
276
277 - Add `OrderSet` by @cuviper!
278 - `OrderMap::drain` is now (too) a double ended iterator.
279
280- 0.3.1
281
282 - In all ordermap iterators, forward the `collect` method to the underlying
283 iterator as well.
284 - Add crates.io categories.
285
286- 0.3.0
287
288 - The methods `get_pair`, `get_pair_index` were both replaced by
289 `get_full` (and the same for the mutable case).
290 - Method `swap_remove_pair` replaced by `swap_remove_full`.
291 - Add trait `MutableKeys` for opt-in mutable key access. Mutable key access
292 is only possible through the methods of this extension trait.
293 - Add new trait `Equivalent` for key equivalence. This extends the
294 `Borrow` trait mechanism for `OrderMap::get` in a backwards compatible
295 way, just some minor type inference related issues may become apparent.
296 See [#10] for more information.
297 - Implement `Extend<(&K, &V)>` by @xfix.
298
299[#10]: https://github.com/bluss/ordermap/pull/10
300
301- 0.2.13
302
303 - Fix deserialization to support custom hashers by @Techcable.
304 - Add methods `.index()` on the entry types by @garro95.
305
306- 0.2.12
307
308 - Add methods `.with_hasher()`, `.hasher()`.
309
310- 0.2.11
311
312 - Support `ExactSizeIterator` for the iterators. By @Binero.
313 - Use `Box<[Pos]>` internally, saving a word in the `OrderMap` struct.
314 - Serde support, with crate feature `"serde-1"`. By @xfix.
315
316- 0.2.10
317
318 - Add iterator `.drain(..)` by @stevej.
319
320- 0.2.9
321
322 - Add method `.is_empty()` by @overvenus.
323 - Implement `PartialEq, Eq` by @overvenus.
324 - Add method `.sorted_by()`.
325
326- 0.2.8
327
328 - Add iterators `.values()` and `.values_mut()`.
329 - Fix compatibility with 32-bit platforms.
330
331- 0.2.7
332
333 - Add `.retain()`.
334
335- 0.2.6
336
337 - Add `OccupiedEntry::remove_entry` and other minor entry methods,
338 so that it now has all the features of `HashMap`'s entries.
339
340- 0.2.5
341
342 - Improved `.pop()` slightly.
343
344- 0.2.4
345
346 - Improved performance of `.insert()` ([#3]) by @pczarn.
347
348[#3]: https://github.com/bluss/ordermap/pull/3
349
350- 0.2.3
351
352 - Generalize `Entry` for now, so that it works on hashmaps with non-default
353 hasher. However, there's a lingering compat issue since libstd `HashMap`
354 does not parameterize its entries by the hasher (`S` typarm).
355 - Special case some iterator methods like `.nth()`.
356
357- 0.2.2
358
359 - Disable the verbose `Debug` impl by default.
360
361- 0.2.1
362
363 - Fix doc links and clarify docs.
364
365- 0.2.0
366
367 - Add more `HashMap` methods & compat with its API.
368 - Experimental support for `.entry()` (the simplest parts of the API).
369 - Add `.reserve()` (placeholder impl).
370 - Add `.remove()` as synonym for `.swap_remove()`.
371 - Changed `.insert()` to swap value if the entry already exists, and
372 return `Option`.
373 - Experimental support as an *indexed* hash map! Added methods
374 `.get_index()`, `.get_index_mut()`, `.swap_remove_index()`,
375 `.get_pair_index()`, `.get_pair_index_mut()`.
376
377- 0.1.2
378
379 - Implement the 32/32 split idea for `Pos` which improves cache utilization
380 and lookup performance.
381
382- 0.1.1
383
384 - Initial release.