1
Fork 0

Compare pairs with slice::windows

This commit is contained in:
Kevin Leimkuhler 2018-10-14 20:45:28 -07:00
parent ccc027eff7
commit 67729b4040
2 changed files with 9 additions and 8 deletions

View file

@ -2655,7 +2655,10 @@ pub trait Iterator {
};
while let Some(curr) = self.next() {
if compare(&last, &curr).map(|o| o == Ordering::Greater).unwrap_or(true) {
if compare(&last, &curr)
.map(|o| o == Ordering::Greater)
.unwrap_or(true)
{
return false;
}
last = curr;

View file

@ -2293,13 +2293,11 @@ impl<T> [T] {
where
F: FnMut(&T, &T) -> Option<Ordering>
{
let len = self.len();
if len <= 1 {
return true;
}
for i in 1..len {
if compare(&self[i - 1], &self[i]).map(|o| o == Ordering::Greater).unwrap_or(true) {
for pair in self.windows(2) {
if compare(&pair[0], &pair[1])
.map(|o| o == Ordering::Greater)
.unwrap_or(true)
{
return false;
}
}