use a binary search for pathfinder_renderer::SortedVector

This commit is contained in:
Sebastian K 2019-12-28 11:14:25 +03:00
parent 0662f6433f
commit 805066e65c
1 changed files with 3 additions and 9 deletions

View File

@ -29,15 +29,9 @@ where
#[inline] #[inline]
pub fn push(&mut self, value: T) { pub fn push(&mut self, value: T) {
self.array.push(value); use std::cmp::Ordering;
let mut index = self.array.len() - 1; let index = self.array.binary_search_by(|other| other.partial_cmp(&value).unwrap_or(Ordering::Less)).unwrap_or_else(|x| x);
while index > 0 { self.array.insert(index, value);
index -= 1;
if self.array[index] <= self.array[index + 1] {
break;
}
self.array.swap(index, index + 1);
}
} }
#[inline] #[inline]