mirror of
https://github.com/zerotier/ZeroTierOne.git
synced 2024-12-25 15:41:05 +00:00
359 lines
12 KiB
ReStructuredText
359 lines
12 KiB
ReStructuredText
- 1.8.2
|
|
|
|
- Bump the ``rustc-rayon`` dependency, for compiler use only.
|
|
|
|
- 1.8.1
|
|
|
|
- The new ``IndexSet::replace_full`` will return the index of the item along
|
|
with the replaced value, if any, by @zakcutner in PR 222_.
|
|
|
|
.. _222: https://github.com/bluss/indexmap/pull/222
|
|
|
|
- 1.8.0
|
|
|
|
- The new ``IndexMap::into_keys`` and ``IndexMap::into_values`` will consume
|
|
the map into keys or values, respectively, matching Rust 1.54's ``HashMap``
|
|
methods, by @taiki-e in PR 195_.
|
|
|
|
- More of the iterator types implement ``Debug``, ``ExactSizeIterator``, and
|
|
``FusedIterator``, by @cuviper in PR 196_.
|
|
|
|
- ``IndexMap`` and ``IndexSet`` now implement rayon's ``ParallelDrainRange``,
|
|
by @cuviper in PR 197_.
|
|
|
|
- ``IndexMap::with_hasher`` and ``IndexSet::with_hasher`` are now ``const``
|
|
functions, allowing static maps and sets, by @mwillsey in PR 203_.
|
|
|
|
- ``IndexMap`` and ``IndexSet`` now implement ``From`` for arrays, matching
|
|
Rust 1.56's implementation for ``HashMap``, by @rouge8 in PR 205_.
|
|
|
|
- ``IndexMap`` and ``IndexSet`` now have methods ``sort_unstable_keys``,
|
|
``sort_unstable_by``, ``sorted_unstable_by``, and ``par_*`` equivalents,
|
|
which sort in-place without preserving the order of equal items, by
|
|
@bhgomes in PR 211_.
|
|
|
|
.. _195: https://github.com/bluss/indexmap/pull/195
|
|
.. _196: https://github.com/bluss/indexmap/pull/196
|
|
.. _197: https://github.com/bluss/indexmap/pull/197
|
|
.. _203: https://github.com/bluss/indexmap/pull/203
|
|
.. _205: https://github.com/bluss/indexmap/pull/205
|
|
.. _211: https://github.com/bluss/indexmap/pull/211
|
|
|
|
- 1.7.0
|
|
|
|
- **MSRV**: Rust 1.49 or later is now required.
|
|
|
|
- The ``hashbrown`` dependency has been updated to version 0.11.
|
|
|
|
- 1.6.2
|
|
|
|
- Fixed to match ``std`` behavior, ``OccupiedEntry::key`` now references the
|
|
existing key in the map instead of the lookup key, by @cuviper in PR 170_.
|
|
|
|
- The new ``Entry::or_insert_with_key`` matches Rust 1.50's ``Entry`` method,
|
|
passing ``&K`` to the callback to create a value, by @cuviper in PR 175_.
|
|
|
|
.. _170: https://github.com/bluss/indexmap/pull/170
|
|
.. _175: https://github.com/bluss/indexmap/pull/175
|
|
|
|
- 1.6.1
|
|
|
|
- The new ``serde_seq`` module implements ``IndexMap`` serialization as a
|
|
sequence to ensure order is preserved, by @cuviper in PR 158_.
|
|
|
|
- New methods on maps and sets work like the ``Vec``/slice methods by the same name:
|
|
``truncate``, ``split_off``, ``first``, ``first_mut``, ``last``, ``last_mut``, and
|
|
``swap_indices``, by @cuviper in PR 160_.
|
|
|
|
.. _158: https://github.com/bluss/indexmap/pull/158
|
|
.. _160: https://github.com/bluss/indexmap/pull/160
|
|
|
|
- 1.6.0
|
|
|
|
- **MSRV**: Rust 1.36 or later is now required.
|
|
|
|
- The ``hashbrown`` dependency has been updated to version 0.9.
|
|
|
|
- 1.5.2
|
|
|
|
- The new "std" feature will force the use of ``std`` for users that explicitly
|
|
want the default ``S = RandomState``, bypassing the autodetection added in 1.3.0,
|
|
by @cuviper in PR 145_.
|
|
|
|
.. _145: https://github.com/bluss/indexmap/pull/145
|
|
|
|
- 1.5.1
|
|
|
|
- Values can now be indexed by their ``usize`` position by @cuviper in PR 132_.
|
|
|
|
- Some of the generic bounds have been relaxed to match ``std`` by @cuviper in PR 141_.
|
|
|
|
- ``drain`` now accepts any ``R: RangeBounds<usize>`` by @cuviper in PR 142_.
|
|
|
|
.. _132: https://github.com/bluss/indexmap/pull/132
|
|
.. _141: https://github.com/bluss/indexmap/pull/141
|
|
.. _142: https://github.com/bluss/indexmap/pull/142
|
|
|
|
- 1.5.0
|
|
|
|
- **MSRV**: Rust 1.32 or later is now required.
|
|
|
|
- The inner hash table is now based on ``hashbrown`` by @cuviper in PR 131_.
|
|
This also completes the method ``reserve`` and adds ``shrink_to_fit``.
|
|
|
|
- Add new methods ``get_key_value``, ``remove_entry``, ``swap_remove_entry``,
|
|
and ``shift_remove_entry``, by @cuviper in PR 136_
|
|
|
|
- ``Clone::clone_from`` reuses allocations by @cuviper in PR 125_
|
|
|
|
- Add new method ``reverse`` by @linclelinkpart5 in PR 128_
|
|
|
|
.. _125: https://github.com/bluss/indexmap/pull/125
|
|
.. _128: https://github.com/bluss/indexmap/pull/128
|
|
.. _131: https://github.com/bluss/indexmap/pull/131
|
|
.. _136: https://github.com/bluss/indexmap/pull/136
|
|
|
|
- 1.4.0
|
|
|
|
- Add new method ``get_index_of`` by @Thermatrix in PR 115_ and 120_
|
|
|
|
- Fix build script rebuild-if-changed configuration to use "build.rs";
|
|
fixes issue 123_. Fix by @cuviper.
|
|
|
|
- Dev-dependencies (rand and quickcheck) have been updated. The crate's tests
|
|
now run using Rust 1.32 or later (MSRV for building the crate has not changed).
|
|
by @kjeremy and @bluss
|
|
|
|
.. _123: https://github.com/bluss/indexmap/issues/123
|
|
.. _115: https://github.com/bluss/indexmap/pull/115
|
|
.. _120: https://github.com/bluss/indexmap/pull/120
|
|
|
|
- 1.3.2
|
|
|
|
- Maintenance update to regenerate the published `Cargo.toml`.
|
|
|
|
- 1.3.1
|
|
|
|
- Maintenance update for formatting and ``autocfg`` 1.0.
|
|
|
|
- 1.3.0
|
|
|
|
- The deprecation messages in the previous version have been removed.
|
|
(The methods have not otherwise changed.) Docs for removal methods have been
|
|
improved.
|
|
- From Rust 1.36, this crate supports being built **without std**, requiring
|
|
``alloc`` instead. This is enabled automatically when it is detected that
|
|
``std`` is not available. There is no crate feature to enable/disable to
|
|
trigger this. The new build-dep ``autocfg`` enables this.
|
|
|
|
- 1.2.0
|
|
|
|
- Plain ``.remove()`` now has a deprecation message, it informs the user
|
|
about picking one of the removal functions ``swap_remove`` and ``shift_remove``
|
|
which have different performance and order semantics.
|
|
Plain ``.remove()`` will not be removed, the warning message and method
|
|
will remain until further.
|
|
|
|
- Add new method ``shift_remove`` for order preserving removal on the map,
|
|
and ``shift_take`` for the corresponding operation on the set.
|
|
|
|
- Add methods ``swap_remove``, ``swap_remove_entry`` to ``Entry``.
|
|
|
|
- Fix indexset/indexmap to support full paths, like ``indexmap::indexmap!()``
|
|
|
|
- Internal improvements: fix warnings, deprecations and style lints
|
|
|
|
- 1.1.0
|
|
|
|
- Added optional feature `"rayon"` that adds parallel iterator support
|
|
to `IndexMap` and `IndexSet` using Rayon. This includes all the regular
|
|
iterators in parallel versions, and parallel sort.
|
|
|
|
- Implemented ``Clone`` for ``map::{Iter, Keys, Values}`` and
|
|
``set::{Difference, Intersection, Iter, SymmetricDifference, Union}``
|
|
|
|
- Implemented ``Debug`` for ``map::{Entry, IntoIter, Iter, Keys, Values}`` and
|
|
``set::{Difference, Intersection, IntoIter, Iter, SymmetricDifference, Union}``
|
|
|
|
- Serde trait ``IntoDeserializer`` are implemented for ``IndexMap`` and ``IndexSet``.
|
|
|
|
- Minimum Rust version requirement increased to Rust 1.30 for development builds.
|
|
|
|
- 1.0.2
|
|
|
|
- The new methods ``IndexMap::insert_full`` and ``IndexSet::insert_full`` are
|
|
both like ``insert`` with the index included in the return value.
|
|
|
|
- The new method ``Entry::and_modify`` can be used to modify occupied
|
|
entries, matching the new methods of ``std`` maps in Rust 1.26.
|
|
|
|
- The new method ``Entry::or_default`` inserts a default value in unoccupied
|
|
entries, matching the new methods of ``std`` maps in Rust 1.28.
|
|
|
|
- 1.0.1
|
|
|
|
- Document Rust version policy for the crate (see rustdoc)
|
|
|
|
- 1.0.0
|
|
|
|
- This is the 1.0 release for ``indexmap``! (the crate and datastructure
|
|
formerly known as “ordermap”)
|
|
- ``OccupiedEntry::insert`` changed its signature, to use ``&mut self`` for
|
|
the method receiver, matching the equivalent method for a standard
|
|
``HashMap``. Thanks to @dtolnay for finding this bug.
|
|
- The deprecated old names from ordermap were removed: ``OrderMap``,
|
|
``OrderSet``, ``ordermap!{}``, ``orderset!{}``. Use the new ``IndexMap``
|
|
etc names instead.
|
|
|
|
- 0.4.1
|
|
|
|
- Renamed crate to ``indexmap``; the ``ordermap`` crate is now deprecated
|
|
and the types ``OrderMap/Set`` now have a deprecation notice.
|
|
|
|
- 0.4.0
|
|
|
|
- This is the last release series for this ``ordermap`` under that name,
|
|
because the crate is **going to be renamed** to ``indexmap`` (with types
|
|
``IndexMap``, ``IndexSet``) and no change in functionality!
|
|
- The map and its associated structs moved into the ``map`` submodule of the
|
|
crate, so that the map and set are symmetric
|
|
|
|
+ The iterators, ``Entry`` and other structs are now under ``ordermap::map::``
|
|
|
|
- Internally refactored ``OrderMap<K, V, S>`` so that all the main algorithms
|
|
(insertion, lookup, removal etc) that don't use the ``S`` parameter (the
|
|
hasher) are compiled without depending on ``S``, which reduces generics bloat.
|
|
|
|
- ``Entry<K, V>`` no longer has a type parameter ``S``, which is just like
|
|
the standard ``HashMap``'s entry.
|
|
|
|
- Minimum Rust version requirement increased to Rust 1.18
|
|
|
|
- 0.3.5
|
|
|
|
- Documentation improvements
|
|
|
|
- 0.3.4
|
|
|
|
- The ``.retain()`` methods for ``OrderMap`` and ``OrderSet`` now
|
|
traverse the elements in order, and the retained elements **keep their order**
|
|
- Added new methods ``.sort_by()``, ``.sort_keys()`` to ``OrderMap`` and
|
|
``.sort_by()``, ``.sort()`` to ``OrderSet``. These methods allow you to
|
|
sort the maps in place efficiently.
|
|
|
|
- 0.3.3
|
|
|
|
- Document insertion behaviour better by @lucab
|
|
- Updated dependences (no feature changes) by @ignatenkobrain
|
|
|
|
- 0.3.2
|
|
|
|
- Add ``OrderSet`` by @cuviper!
|
|
- ``OrderMap::drain`` is now (too) a double ended iterator.
|
|
|
|
- 0.3.1
|
|
|
|
- In all ordermap iterators, forward the ``collect`` method to the underlying
|
|
iterator as well.
|
|
- Add crates.io categories.
|
|
|
|
- 0.3.0
|
|
|
|
- The methods ``get_pair``, ``get_pair_index`` were both replaced by
|
|
``get_full`` (and the same for the mutable case).
|
|
- Method ``swap_remove_pair`` replaced by ``swap_remove_full``.
|
|
- Add trait ``MutableKeys`` for opt-in mutable key access. Mutable key access
|
|
is only possible through the methods of this extension trait.
|
|
- Add new trait ``Equivalent`` for key equivalence. This extends the
|
|
``Borrow`` trait mechanism for ``OrderMap::get`` in a backwards compatible
|
|
way, just some minor type inference related issues may become apparent.
|
|
See `#10`__ for more information.
|
|
- Implement ``Extend<(&K, &V)>`` by @xfix.
|
|
|
|
__ https://github.com/bluss/ordermap/pull/10
|
|
|
|
- 0.2.13
|
|
|
|
- Fix deserialization to support custom hashers by @Techcable.
|
|
- Add methods ``.index()`` on the entry types by @garro95.
|
|
|
|
- 0.2.12
|
|
|
|
- Add methods ``.with_hasher()``, ``.hasher()``.
|
|
|
|
- 0.2.11
|
|
|
|
- Support ``ExactSizeIterator`` for the iterators. By @Binero.
|
|
- Use ``Box<[Pos]>`` internally, saving a word in the ``OrderMap`` struct.
|
|
- Serde support, with crate feature ``"serde-1"``. By @xfix.
|
|
|
|
- 0.2.10
|
|
|
|
- Add iterator ``.drain(..)`` by @stevej.
|
|
|
|
- 0.2.9
|
|
|
|
- Add method ``.is_empty()`` by @overvenus.
|
|
- Implement ``PartialEq, Eq`` by @overvenus.
|
|
- Add method ``.sorted_by()``.
|
|
|
|
- 0.2.8
|
|
|
|
- Add iterators ``.values()`` and ``.values_mut()``.
|
|
- Fix compatibility with 32-bit platforms.
|
|
|
|
- 0.2.7
|
|
|
|
- Add ``.retain()``.
|
|
|
|
- 0.2.6
|
|
|
|
- Add ``OccupiedEntry::remove_entry`` and other minor entry methods,
|
|
so that it now has all the features of ``HashMap``'s entries.
|
|
|
|
- 0.2.5
|
|
|
|
- Improved ``.pop()`` slightly.
|
|
|
|
- 0.2.4
|
|
|
|
- Improved performance of ``.insert()`` (`#3`__) by @pczarn.
|
|
|
|
__ https://github.com/bluss/ordermap/pull/3
|
|
|
|
- 0.2.3
|
|
|
|
- Generalize ``Entry`` for now, so that it works on hashmaps with non-default
|
|
hasher. However, there's a lingering compat issue since libstd ``HashMap``
|
|
does not parameterize its entries by the hasher (``S`` typarm).
|
|
- Special case some iterator methods like ``.nth()``.
|
|
|
|
- 0.2.2
|
|
|
|
- Disable the verbose ``Debug`` impl by default.
|
|
|
|
- 0.2.1
|
|
|
|
- Fix doc links and clarify docs.
|
|
|
|
- 0.2.0
|
|
|
|
- Add more ``HashMap`` methods & compat with its API.
|
|
- Experimental support for ``.entry()`` (the simplest parts of the API).
|
|
- Add ``.reserve()`` (placeholder impl).
|
|
- Add ``.remove()`` as synonym for ``.swap_remove()``.
|
|
- Changed ``.insert()`` to swap value if the entry already exists, and
|
|
return ``Option``.
|
|
- Experimental support as an *indexed* hash map! Added methods
|
|
``.get_index()``, ``.get_index_mut()``, ``.swap_remove_index()``,
|
|
``.get_pair_index()``, ``.get_pair_index_mut()``.
|
|
|
|
- 0.1.2
|
|
|
|
- Implement the 32/32 split idea for ``Pos`` which improves cache utilization
|
|
and lookup performance.
|
|
|
|
- 0.1.1
|
|
|
|
- Initial release.
|