Binary Heap for Rust that takes a comparison function as a parameter