use core::cmp::Ordering;
#[inline]
pub fn into_sorted<Item, Array>(mut array: Array) -> Array
where
Array: AsMut<[Item]>,
Item: Ord,
{
array.as_mut().sort();
array
}
#[inline]
pub fn into_sorted_by<Item, Array, Order>(mut array: Array, order: Order) -> Array
where
Array: AsMut<[Item]>,
Order: FnMut(&Item, &Item) -> Ordering,
{
array.as_mut().sort_by(order);
array
}
#[inline]
pub fn into_sorted_by_key<Item, Array, Key, GetKey>(mut array: Array, get_key: GetKey) -> Array
where
Array: AsMut<[Item]>,
GetKey: FnMut(&Item) -> Key,
Key: Ord,
{
array.as_mut().sort_by_key(get_key);
array
}
#[inline]
pub fn into_sorted_by_cached_key<Item, Array, Key, GetKey>(
mut array: Array,
get_key: GetKey,
) -> Array
where
Array: AsMut<[Item]>,
GetKey: FnMut(&Item) -> Key,
Key: Ord,
{
array.as_mut().sort_by_cached_key(get_key);
array
}