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 |
#689 in Rust patterns
306 downloads per month
Used in 21 crates
(9 directly)
36KB
807 lines
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 Streams, and the merge and try_merge functions
to merge two collated Streams.
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);
Dependencies
~225KB