Further reduce required manual comparisons
Dependencies
- [2]
5PUWL3CLFix off by one error - [3]
UICD2BGDPossibly use a better pivot in the sponge loop - [4]
AOO3FCSGCargo clippy, tweaks, etc - [5]
QEKHTVB7Get most things semi-working except the final sort - [6]
CYDK6S5LFix bugs - [7]
5OUVESUQAttempt to reduce additional manual comparison upon resume - [8]
MFGAW2Q2Cache preferences in memory - [*]
5Y7ZXB53Start picker UI
Change contents
- edit in src/pick.rs at line 14
use std::cmp::Ordering; - replacement in src/pick.rs at line 113
let j: *mut IDedName = {let mut j: *mut IDedName = { - replacement in src/pick.rs at line 118
while i < threshold {'sieve: loop { - replacement in src/pick.rs at line 123
i = unsafe { comparator.partition(i, j, pivot).await? };let pivot = unsafe { comparator.partition(i, j, pivot).await? };match pivot.cmp(&threshold) {Ordering::Less => {i = unsafe { pivot.offset(1) };}Ordering::Equal => {break 'sieve;}Ordering::Greater => {j = pivot;}} - replacement in src/pick.rs at line 136
unsafe {shortlist.truncate(1 + i.offset_from(&shortlist[0]) as usize)};shortlist.truncate(count as usize); - replacement in src/pick.rs at line 199
use std::cmp::Ordering::*;use Ordering::*; - replacement in src/pick.rs at line 228
) -> DynResult<std::cmp::Ordering> {) -> DynResult<Ordering> { - replacement in src/pick.rs at line 242
break (std::cmp::Ordering::Greater, a.1, b.1);break (Ordering::Greater, a.1, b.1); - replacement in src/pick.rs at line 245
break (std::cmp::Ordering::Less, b.1, a.1);break (Ordering::Less, b.1, a.1);