Struct ordsearch::OrderedCollection [] [src]

pub struct OrderedCollection<T> { /* fields omitted */ }

A collection of ordered items that can efficiently satisfy queries for nearby elements.

Methods

impl<T: Ord> OrderedCollection<T>
[src]

[src]

Construct a new OrderedCollection from an iterator over sorted elements.

Note that if the iterator is not sorted, no error will be given, but lookups will give incorrect results. The given iterator must also implement ExactSizeIterator so that we know the size of the lookup array.

Examples

Using an already-sorted iterator:


let mut s = BTreeSet::new();
s.insert(42);
s.insert(89);
s.insert(7);
s.insert(12);
let a = OrderedCollection::from_sorted_iter(s);
assert_eq!(a.find_gte(50), Some(&89));

Sorting a collection and then iterating (in this case, you'd likely use new instead):

let mut v = vec![42, 89, 7, 12];
v.sort_unstable();
let a = OrderedCollection::from_sorted_iter(v);
assert_eq!(a.find_gte(50), Some(&89));

The OrderedCollection can also be over references to somewhere else:


let mut s = BTreeSet::new();
s.insert(42);
s.insert(89);
s.insert(7);
s.insert(12);
let a = OrderedCollection::from_sorted_iter(s.iter());
assert_eq!(a.find_gte(50), Some(&&89));

[src]

Construct a new OrderedCollection from a slice of elements.

Note that the underlying slice will be reordered!

Examples

let a = OrderedCollection::from(&mut [42, 89, 7, 12]);
assert_eq!(a.find_gte(50), Some(&&89));

[src]

Find the smallest value v such that v >= x.

Returns None if there is no such v.

Trait Implementations

impl<T: Ord> From<Vec<T>> for OrderedCollection<T>
[src]

[src]

Construct a new OrderedCollection from a vector of elements.

Examples

let a = OrderedCollection::from(vec![42, 89, 7, 12]);
assert_eq!(a.find_gte(50), Some(&89));