20 releases (stable)
|2.3.0||Mar 5, 2019|
|2.2.0||Oct 5, 2018|
|2.1.0||Nov 16, 2017|
|2.0.0||May 10, 2017|
|0.0.5||Feb 20, 2015|
#3 in Text processing
240,401 downloads per month
Used in 2,223 crates (38 directly)
Compare strings when case is not important.
// 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);
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)
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.
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.
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.
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);
use unicase::Ascii; let a = Ascii::new("foobar"); let b = Ascii::new("FoObAr"); assert_eq!(a, b);