INNER CODE UNIT · Rust
iter_unique
kaist-ina/BWA-MEME · RMI/rmi_lib/src/models/mod.rs:399
pub fn iter_unique(&self) -> impl Iterator<Item = (T, usize)> + '_ {
map_scale!(self, DedupIter::new(self.iterable.cdf_iter()))
}
// Code adapted from superslice,
// https://docs.rs/superslice/1.0.0/src/superslice/lib.rs.html
// which was copyright 2017 Alkis Evlogimenos under the Apache License.
pub fn lower_bound_by<F>(&self, f: F) -> usize
where F: Fn((T, usize)) -> Ordering {
let mut size = self.len();
if size == 0 { return 0; }
let mut base = 0usize;
while size > 1 {
let half = size / 2;
let mid = base + half;
let cmp = f(self.get(mid));