Make BinaryHeap parametric over Allocator Tracking issue: #32838 Related: https://github.com/rust-lang/wg-allocators/issues/7 This parametrizes `BinaryHeap` with `A`, similarly to how other collections are parametrized. A couple things I left out: ``` BinaryHeap::append Currently requires both structures to have the same allocator type. Could change, but depends on Vec::append, which has the same constraints. impl<T: Ord> Default for BinaryHeap<T> Not parametrized, because there's nowhere to conjure the allocator from. impl<T: Ord> FromIterator<T> for BinaryHeap<T> Not parametrized, because there's nowhere to conjure the allocator from. impl<T: Ord, const N: usize> From<[T; N]> for BinaryHeap<T> Not parametrized, because there's nowhere to conjure the allocator from. unsafe impl<I> AsVecIntoIter for IntoIter<I> AsVecIntoIter is not allocator aware, and I didn't dare change it without guidance. Is this something important? ``` I've seen very few tests for allocator_api in general, but I'd like to at least test this on some usage code in my projects before moving forward. EDIT: Updated the list of impls and functions that are not affected by this. `BinaryHeap` no longer has a `SpecExtend` impl, and prior work made implementing `Extend` possible. |
||
|---|---|---|
| .. | ||
| alloc | ||
| backtrace@4245978ca8 | ||
| core | ||
| panic_abort | ||
| panic_unwind | ||
| portable-simd | ||
| proc_macro | ||
| profiler_builtins | ||
| rtstartup | ||
| rustc-std-workspace-alloc | ||
| rustc-std-workspace-core | ||
| rustc-std-workspace-std | ||
| std | ||
| stdarch@7e2cdc675b | ||
| sysroot | ||
| test | ||
| unwind | ||