rust/library/alloc/src
Michael Goulet 68b390ae2a
Rollup merge of #104672 - Voultapher:unify-sort-modules, r=thomcc
Unify stable and unstable sort implementations in same core module

This moves the stable sort implementation to the core::slice::sort module. By virtue of being in core it can't access `Vec`. The two `Vec` used by merge sort, `buf` and `runs`, are modelled as custom types that implement the very limited required `Vec` interface with the help of provided allocation and free functions. This is done to allow future re-use of functions and logic between stable and unstable sort. Such as `insert_head`.

This is in preparation of #100856 and #104116. It only moves code, it *doesn't* change any of the sort related logic. This unlocks the ability to share `insert_head`, `insert_tail`, `swap_if_less` `merge` and more.

Tagging ````@Mark-Simulacrum```` I hope this allows progress on #100856, by moving `merge_sort` here I hope future changes will be easier to review.
2023-01-20 21:33:21 -05:00
..
alloc run alloc benchmarks in Miri and fix UB 2022-11-07 10:34:04 +01:00
boxed Deallocate ThinBox even if the value unwinds on drop 2023-01-01 13:48:18 -05:00
collections Document guarantees about BinaryHeap invariant 2023-01-14 13:28:30 -08:00
ffi remove cfg(bootstrap) 2022-09-26 10:14:45 +02:00
raw_vec Add a unit test for zero-sized types in RawVec. 2021-11-26 19:30:45 +11:00
rc Use Box::new() instead of box syntax in alloc tests 2022-05-29 00:41:14 +02:00
slice Update rand in the stdlib tests, and remove the getrandom feature from it 2023-01-04 14:52:41 -08:00
sync add some Miri-only tests 2022-08-18 18:07:39 -04:00
testing Share testing utilities with non-btree test cases 2022-05-02 10:07:50 +02:00
vec Auto merge of #106989 - clubby789:is-zero-num, r=scottmcm 2023-01-19 08:04:26 +00:00
alloc.rs Remove various double spaces in source comments. 2023-01-14 17:22:04 +01:00
borrow.rs Remove redundant lifetime bound from impl Borrow for Cow 2022-07-22 01:35:39 +02:00
boxed.rs Update bootstrap cfg 2022-12-28 09:18:43 -05:00
fmt.rs std::fmt: Use args directly in example code 2022-12-17 13:43:08 -05:00
lib.rs Implement alloc::vec::IsZero for Option<$NUM> types 2023-01-18 15:15:15 +00:00
macros.rs Extra documentation for new formatting feature 2022-08-21 15:28:27 -04:00
raw_vec.rs Make ZST checks in core/alloc more readable 2022-09-22 23:12:29 -07:00
rc.rs Remove various double spaces in source comments. 2023-01-14 17:22:04 +01:00
slice.rs Rollup merge of #104672 - Voultapher:unify-sort-modules, r=thomcc 2023-01-20 21:33:21 -05:00
str.rs Avoid unsafe code in to_ascii_[lower/upper]case() 2023-01-16 01:15:06 +02:00
string.rs impl: specialize impl of ToString on bool 2023-01-10 15:34:21 +13:00
sync.rs Remove various double spaces in source comments. 2023-01-14 17:22:04 +01:00
task.rs Document the conditional existence of alloc::sync and alloc::task. 2022-06-17 20:03:23 -07:00
tests.rs Use implicit capture syntax in format_args 2022-03-10 10:23:40 -05:00