24 releases (stable)
Uses old Rust 2015
2.6.0 | Nov 12, 2019 |
---|---|
2.4.0 | Apr 30, 2019 |
2.3.0 | Mar 5, 2019 |
2.2.0 | Oct 5, 2018 |
0.0.5 | Feb 20, 2015 |
#29 in Text processing
1,551,117 downloads per month
Used in 6,429 crates
(135 directly)
98KB
2.5K
SLoC
unicase
Compare strings when case is not important (using Unicode Case-folding).
// ignore ASCII case
let a = UniCase::new("foobar");
let b = UniCase::new("FOOBAR");
assert_eq!(a, b);
// using unicode case-folding
let c = UniCase::new("Maße")
let d = UniCase::new("MASSE");
assert_eq!(c, d);
License
Licensed under either of
- Apache License, Version 2.0 (LICENSE-APACHE or http://apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT or http://opensource.org/licenses/MIT)
Contribution
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.
lib.rs
:
UniCase
UniCase provides a way of specifying strings that are case-insensitive.
UniCase supports full Unicode case folding. It can also utilize faster ASCII case comparisons, if both strings are ASCII.
Using the UniCase::new()
constructor will check the string to see if it
is all ASCII. When a UniCase
is compared against another, if both are
ASCII, it will use the faster comparison.
There also exists the Ascii
type in this crate, which will always assume
to use the ASCII case comparisons, if the encoding is already known.
Example
use unicase::UniCase;
let a = UniCase::new("Maße");
let b = UniCase::new("MASSE");
let c = UniCase::new("mase");
assert_eq!(a, b);
assert!(b != c);
Ascii
use unicase::Ascii;
let a = Ascii::new("foobar");
let b = Ascii::new("FoObAr");
assert_eq!(a, b);