From ab7c2f2bfbd8f8a1ca4286235bb7a6a152ccf704 Mon Sep 17 00:00:00 2001 From: chris-ha458 Date: Mon, 6 Nov 2023 18:40:53 +0900 Subject: [PATCH] implement a free `sorted_unstable` - based on free `sorted` --- src/free.rs | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/src/free.rs b/src/free.rs index 6de0a0daf..5ce1b49b3 100644 --- a/src/free.rs +++ b/src/free.rs @@ -295,3 +295,22 @@ where { iterable.into_iter().sorted() } + +/// Sort all iterator elements into a new iterator in ascending order. +/// This sort is unstable (i.e., may reorder equal elements). +/// [`IntoIterator`] enabled version of [`Itertools::sorted_unstable`]. +/// +/// ``` +/// use itertools::sorted_unstable; +/// use itertools::assert_equal; +/// +/// assert_equal(sorted_unstable("rust".chars()), "rstu".chars()); +/// ``` +#[cfg(feature = "use_alloc")] +pub fn sorted_unstable(iterable: I) -> VecIntoIter +where + I: IntoIterator, + I::Item: Ord, +{ + iterable.into_iter().sorted_unstable() +}