19 releases
0.4.2 | Aug 13, 2024 |
---|---|
0.4.1 | Dec 20, 2023 |
0.4.0 | Nov 6, 2023 |
0.3.0 | Jul 3, 2023 |
0.1.1 | Jan 18, 2021 |
#296 in Rust patterns
1,850 downloads per month
Used in 21 crates
(9 directly)
36KB
807 lines
collate
Rust collation utilities
Example usage:
use collate::*;
let collator = Collator::default();
let collection = [
[1, 2, 3],
[2, 3, 4],
[3, 4, 5],
];
assert_eq!(collator.bisect_left(&collection, &[1]), 0);
assert_eq!(collator.bisect_right(&collection, &[1]), 1);
lib.rs
:
Defines a Collate
trait to standardize collation methods across data types. The provided
Collator
struct can be used to collate a collection of items of type T
where T: Ord
.
Collate
is useful for implementing a B-Tree, or to handle cases where a collator type is
more efficient than calling Ord::cmp
repeatedly, for example when collating localized strings
using rust_icu_ucol
. It's also useful to handle types like complex numbers which do not
necessarily have a natural ordering.
Use the "stream" feature flag to enable diff
and try_diff
functions to compute the
difference between two collated Stream
s, and the merge
and try_merge
functions
to merge two collated Stream
s.
Dependencies
~250KB