Open Philippe-Cholet opened 6 months ago
First, Itertools::dedup_by[_with_count] uses FnMut(&Self::Item, &Self::Item) -> bool while Vec::dedup_by uses FnMut(&mut T, &mut T) -> bool. It differs in mutability: & vs &mut. Not sure why yet.
Itertools::dedup_by[_with_count]
FnMut(&Self::Item, &Self::Item) -> bool
Vec::dedup_by
FnMut(&mut T, &mut T) -> bool
&
&mut
Second, Vec::dedup_by_key exists but Itertools::dedup_by_key[_with_count] do not:
Vec::dedup_by_key
Itertools::dedup_by_key[_with_count]
trait Itertools { fn dedup_by_key<F, K>(self, key: F) -> DedupByKey<Self, F> where Self: Sized, F: FnMut(&/*mut ??*/ Self::Item) -> K, K: PartialEq; fn dedup_by_key_with_count<F, K>(self, key: F) -> DedupByKeyWithCount<Self, F> where Self: Sized, F: FnMut(&/*mut ??*/ Self::Item) -> K, K: PartialEq; }
First,
Itertools::dedup_by[_with_count]
usesFnMut(&Self::Item, &Self::Item) -> bool
whileVec::dedup_by
usesFnMut(&mut T, &mut T) -> bool
. It differs in mutability:&
vs&mut
. Not sure why yet.Second,
Vec::dedup_by_key
exists butItertools::dedup_by_key[_with_count]
do not: