All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
#[must_use]
attribute to many methods, porting and extending several rust-lang/rust PRs- Method
shrink_to()
, ported from rust-lang/rust - Implementation of
From<[T; N]>
forBinaryHeap<T>
, ported from rust-lang/rust#84111 - Links to referenced items in the documenation
- Example of a min-heap, ported from rust-lang/rust#60451
- Documentation of time complexities of several methods, ported from rust-lang/rust#60952
- Migrate to Rust 2021 Edition
- Increase MSRV (minimum supported rust version) to rust 1.56.0.
- Implement
From<BinaryHeap<T, C>>
forVec<T>
instead ofInto<Vec<T>>
forBinaryHeap<T, C>
- Port rust-lang/rust#77435 improvement to rebuild heuristic of
BinaryHeap::append()
- Use italics with big-O notation in documentation, ported from rust-lang/rust#71167
- Relax trait bound
C: Compare<T>
onBinaryHeap<T, C>
struct and certain methods, in part ported from rust-lang/rust#58421 - Synchronize internal implementation details with
std::collections::BinaryHeap
in Rust 1.62.0
- Performance improvement (#28)
- Port rust-lang/rust#78857 - Improve BinaryHeap performance
- Performance improvement (#27)
- Avoid sift_down for unmutated PeekMut (rust#75974)
- Bump MSRV (minimum supported rust version) to rust 1.32.0.
- generic constructor
from_vec_cmp_raw()
. replace_cmp()
which replace the comparator of heap and its unsafe versionreplace_cmp_raw()
.
- Quickstart section in the doc
.into_iter_sorted()
which returns the values in heap order. (#13)- Note:
.into_iter()
returns the values in arbitrary order. There is a good reason (ex. make.extend()
efficient) forstd
to do that, it was surprising to some people.
- Note:
- Migrate to Rust 2018 Edition.
- Bump MSRV (minimum supported rust version) to rust 1.31.1.
- [CI] Switched to Github actions.
- [CI] travis is removed because it was unreliable.
- [CI] appveyor is removed because it's slow.
- [COMPATIBILITY] Use
Compare
trait fromcompare
crate instead of our own definition. Most users should not be affected by this. TIP: ExternalCompare<T>
impls needs to be updated to useFn
instead ofFnMut
. - [COMPATIBILITY] rename feature
serde1
toserde
in order to comply with the guideline: https://rust-lang-nursery.github.io/api-guidelines/interoperability.html#c-serde - Refactor ctor impl.
- generic constructor
from_vec()
andfrom_vec_cmp()
.
- Refactor other ctor to call above methods.
serde1
feature which adds Serialize/Deserialize
- Merge #1) Do not require T: Ord when a custom comparator is provided
- Add comprehensive CI based on
trust
CI template v0.1.2 - README.md tweaks.
- Cargo.toml tweaks
- Initial tag