trait Search { fn sort(candidates: &mut [Candidate]); fn find<'a>(query: &mut Query<'a>, candidates: &'a mut [Candidate]); }