Consider whether retain is useful for queues or not. `fn retain<F>(&mut self, mut predicate: F)` std documentation [here](https://doc.rust-lang.org/std/collections/struct.BinaryHeap.html#method.retain)