Compare pairs with slice::windows
This commit is contained in:
parent
ccc027eff7
commit
67729b4040
2 changed files with 9 additions and 8 deletions
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue