Releases: Aloso/lexical-sort
Release 0.3.1
This small release adds no_std
support. There's a std
feature that is required for comparing and sorting file paths. This feature is enabled by default, so you need to disable default features to compile without the standard library:
# Cargo.toml
[dependencies]
lexical-sort = { version = "0.3.1", default-features = false }
Release 0.3
This release features three new comparison functions and a brand new public API that is more powerful and flexible. Additionally, the benchmark was rewritten and the documentation was improved.
The new API
There are now two traits, StringSort
and PathSort
, which allow sorting a slice containing strings or paths, or things that implement AsRef<str>
or AsRef<Path>
:
use lexical_sort::{StringSort, natural_lexical_cmp};
let mut strings = vec!["ß", "é", "100", "hello", "world", "50", ".", "B!"];
strings.string_sort_unstable(natural_lexical_cmp);
Comparison functions
There are now 8 comparison functions available:
Function | lexicographical | natural | skips non-alphanumeric chars |
---|---|---|---|
cmp |
|||
only_alnum_cmp |
yes | ||
lexical_cmp |
yes | ||
lexical_only_alnum_cmp |
yes | yes | |
natural_cmp |
yes | ||
natural_only_alnum_cmp |
yes | yes | |
natural_lexical_cmp |
yes | yes | |
natural_lexical_only_alnum_cmp |
yes | yes | yes |
Looking ahead
I plan to implement better Unicode support, although I still have to explore the design space here. I'm also open to feature requests!
Version 0.2.1
This is a new release of the lexical-sort crate with a bug fix to sort numbers correctly, more benchmarks, and two new functions: lexical_cmp_only_alnum
and lexical_natural_cmp_only_alnum
skip characters that aren't alphanumeric.
Version 0.2
This is a new release of the lexical-sort
crate with performance improvements, better Unicode support thanks to the any_ascii
crate, a benchmark and a new license.
Version 0.1
v0.1 Remove keywords