into_sorted/unstable/
functions.rs

1use core::cmp::Ordering;
2
3/// Sort an array by [`Ord`] and return it.
4///
5/// This function calls [`slice::sort_unstable`] under the hook.
6///
7/// [`slice::sort_unstable`]: https://doc.rust-lang.org/std/primitive.slice.html#method.sort_unstable
8#[inline]
9pub fn into_sorted_unstable<Item, Array>(mut array: Array) -> Array
10where
11    Array: AsMut<[Item]>,
12    Item: Ord,
13{
14    array.as_mut().sort_unstable();
15    array
16}
17
18/// Sort an array by a function and return it.
19///
20/// This function calls [`slice::sort_unstable_by`] under the hook.
21///
22/// [`slice::sort_unstable_by`]: https://doc.rust-lang.org/std/primitive.slice.html#method.sort_unstable_by
23#[inline]
24pub fn into_sorted_unstable_by<Item, Array, Order>(mut array: Array, order: Order) -> Array
25where
26    Array: AsMut<[Item]>,
27    Order: FnMut(&Item, &Item) -> Ordering,
28{
29    array.as_mut().sort_unstable_by(order);
30    array
31}
32
33/// Sort an array by a key extraction function and return it.
34///
35/// This function calls [`slice::sort_unstable_by_key`] under the hook.
36///
37/// [`slice::sort_unstable_by_key`]: https://doc.rust-lang.org/std/primitive.slice.html#method.sort_unstable_by_key
38#[inline]
39pub fn into_sorted_unstable_by_key<Item, Array, Key, GetKey>(
40    mut array: Array,
41    get_key: GetKey,
42) -> Array
43where
44    Array: AsMut<[Item]>,
45    GetKey: FnMut(&Item) -> Key,
46    Key: Ord,
47{
48    array.as_mut().sort_unstable_by_key(get_key);
49    array
50}