Trait cranelift_bforest::Comparator

source ·
pub trait Comparator<K>
where K: Copy,
{ // Required method fn cmp(&self, a: K, b: K) -> Ordering; // Provided method fn search(&self, k: K, s: &[K]) -> Result<usize, usize> { ... } }
Expand description

Key comparator.

Keys don’t need to implement Ord. They are compared using a comparator object which provides a context for comparison.

Required Methods§

source

fn cmp(&self, a: K, b: K) -> Ordering

Compare keys a and b.

This relation must provide a total ordering or the key space.

Provided Methods§

source

fn search(&self, k: K, s: &[K]) -> Result<usize, usize>

Binary search for k in an ordered slice.

Assume that s is already sorted according to this ordering, search for the key k.

Returns Ok(idx) if k was found in the slice or Err(idx) with the position where it should be inserted to preserve the ordering.

Implementations on Foreign Types§

source§

impl<K> Comparator<K> for ()
where K: Copy + Ord,

Trivial comparator that doesn’t actually provide any context.

source§

fn cmp(&self, a: K, b: K) -> Ordering

Implementors§