The current rust’s BinaryHeap is max-heap only. In c++ and D language, you can get the values with arbitrary order defined by custom comparator. My crate attempts to fill the gap.

It’s backward-compatible with BinaryHeap in std.

Almost all tests copied from std passed just fine.

My plan is

[Edit] Polish the code to support closure case / follow BuildHash pattern

pattern publish as crate.

use the crate from my wavelet-matrix crate which uses binary heap in various way.

ultimately, write RFC and improve std coverage.

Anyone interested?