From ac654709697daea8ffda25e27dc8ab9c74d069b1 Mon Sep 17 00:00:00 2001 From: philipp Date: Wed, 22 Dec 2021 22:06:32 +0100 Subject: [PATCH 1/7] Canonicalize some free functions (1) equal --- src/lib.rs | 12 +----------- 1 file changed, 1 insertion(+), 11 deletions(-) diff --git a/src/lib.rs b/src/lib.rs index df95e19ba..4dc48824a 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -3490,17 +3490,7 @@ pub fn equal(a: I, b: J) -> bool J: IntoIterator, I::Item: PartialEq { - let mut ia = a.into_iter(); - let mut ib = b.into_iter(); - loop { - match ia.next() { - Some(x) => match ib.next() { - Some(y) => if x != y { return false; }, - None => return false, - }, - None => return ib.next().is_none() - } - } + a.into_iter().eq(b) } /// Assert that two iterables produce equal sequences, with the same From f1e9a73c9171a5df5b860897080ead89df002a9f Mon Sep 17 00:00:00 2001 From: philipp Date: Wed, 22 Dec 2021 22:06:32 +0100 Subject: [PATCH 2/7] Canonicalize some free functions (1.2) equal: documentation --- src/lib.rs | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/lib.rs b/src/lib.rs index 4dc48824a..f2ecd3ec7 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -3478,8 +3478,7 @@ impl Itertools for T where T: Iterator { } /// (elements pairwise equal and sequences of the same length), /// `false` otherwise. /// -/// This is an [`IntoIterator`] enabled function that is similar to the standard -/// library method [`Iterator::eq`]. +/// [`IntoIterator`] enabled version of [`Iterator::eq`]. /// /// ``` /// assert!(itertools::equal(vec![1, 2, 3], 1..4)); From aff1c816a417e32b0362c90752763789a2d0a612 Mon Sep 17 00:00:00 2001 From: philipp Date: Wed, 22 Dec 2021 22:06:32 +0100 Subject: [PATCH 3/7] Canonicalize some free functions (2) interleave: documentation --- src/adaptors/mod.rs | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/src/adaptors/mod.rs b/src/adaptors/mod.rs index 2010f535b..d324e4a68 100644 --- a/src/adaptors/mod.rs +++ b/src/adaptors/mod.rs @@ -35,9 +35,7 @@ pub struct Interleave { /// Create an iterator that interleaves elements in `i` and `j`. /// -/// [`IntoIterator`] enabled version of `i.interleave(j)`. -/// -/// See [`.interleave()`](crate::Itertools::interleave) for more information. +/// [`IntoIterator`] enabled version of `[Itertools::interleave]`. pub fn interleave(i: I, j: J) -> Interleave<::IntoIter, ::IntoIter> where I: IntoIterator, J: IntoIterator From 4d7f793ec54c77cbe0842d2f4bdee6bc10e28dd7 Mon Sep 17 00:00:00 2001 From: philipp Date: Wed, 22 Dec 2021 22:06:32 +0100 Subject: [PATCH 4/7] Canonicalize some free functions (3) kmerge: documentation --- src/kmerge_impl.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/kmerge_impl.rs b/src/kmerge_impl.rs index bd56b0317..cadd136a3 100644 --- a/src/kmerge_impl.rs +++ b/src/kmerge_impl.rs @@ -129,7 +129,7 @@ implbool> KMergePredicate for F { /// Create an iterator that merges elements of the contained iterators using /// the ordering function. /// -/// Equivalent to `iterable.into_iter().kmerge()`. +/// [`IntoIterator`] enabled version of [`Itertools::kmerge`]. /// /// ``` /// use itertools::kmerge; From caed277e5a37f56e66bb3a10da3d1f46d366e3ac Mon Sep 17 00:00:00 2001 From: philipp Date: Wed, 22 Dec 2021 22:06:32 +0100 Subject: [PATCH 5/7] Canonicalize some free functions (3.2) kmerge_by: documentation --- src/kmerge_impl.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/kmerge_impl.rs b/src/kmerge_impl.rs index cadd136a3..f51ed23e6 100644 --- a/src/kmerge_impl.rs +++ b/src/kmerge_impl.rs @@ -170,7 +170,7 @@ impl fmt::Debug for KMergeBy /// Create an iterator that merges elements of the contained iterators. /// -/// Equivalent to `iterable.into_iter().kmerge_by(less_than)`. +/// [`IntoIterator`] enabled version of [`Itertools::kmerge_by`]. pub fn kmerge_by(iterable: I, mut less_than: F) -> KMergeBy<::IntoIter, F> where I: IntoIterator, From 08ea4c46b581fefba0382b591cd15bedda20c371 Mon Sep 17 00:00:00 2001 From: philipp Date: Wed, 22 Dec 2021 22:06:32 +0100 Subject: [PATCH 6/7] Canonicalize some free functions (4) merge_join_by: documentation --- src/merge_join.rs | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/merge_join.rs b/src/merge_join.rs index 4c0048f68..f2fbdea2c 100644 --- a/src/merge_join.rs +++ b/src/merge_join.rs @@ -4,10 +4,12 @@ use std::fmt; use super::adaptors::{PutBack, put_back}; use crate::either_or_both::EitherOrBoth; +#[cfg(doc)] +use crate::Itertools; /// Return an iterator adaptor that merge-joins items from the two base iterators in ascending order. /// -/// See [`.merge_join_by()`](crate::Itertools::merge_join_by) for more information. +/// [`IntoIterator`] enabled version of [`Itertools::merge_join_by`]. pub fn merge_join_by(left: I, right: J, cmp_fn: F) -> MergeJoinBy where I: IntoIterator, From 8e73e5d2b217b78cb54f7255fb84853b77952765 Mon Sep 17 00:00:00 2001 From: philipp Date: Wed, 22 Dec 2021 22:06:32 +0100 Subject: [PATCH 7/7] Canonicalize some free functions (5) multipeek: documentation --- src/multipeek_impl.rs | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/multipeek_impl.rs b/src/multipeek_impl.rs index 5917681fc..0ac9380b6 100644 --- a/src/multipeek_impl.rs +++ b/src/multipeek_impl.rs @@ -2,6 +2,8 @@ use std::iter::Fuse; use alloc::collections::VecDeque; use crate::size_hint; use crate::PeekingNext; +#[cfg(doc)] +use crate::Itertools; /// See [`multipeek()`] for more information. #[derive(Clone, Debug)] @@ -15,6 +17,8 @@ pub struct MultiPeek /// An iterator adaptor that allows the user to peek at multiple `.next()` /// values without advancing the base iterator. +/// +/// [`IntoIterator`] enabled version of [`Itertools::multipeek`]. pub fn multipeek(iterable: I) -> MultiPeek where I: IntoIterator {