23 releases (stable)

2.5.1 Sep 3, 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

#7 in Text processing

Download history 104502/week @ 2019-06-21 95095/week @ 2019-06-28 92237/week @ 2019-07-05 100268/week @ 2019-07-12 102914/week @ 2019-07-19 108988/week @ 2019-07-26 97630/week @ 2019-08-02 98924/week @ 2019-08-09 93600/week @ 2019-08-16 90990/week @ 2019-08-23 94592/week @ 2019-08-30 106740/week @ 2019-09-06 102572/week @ 2019-09-13 103614/week @ 2019-09-20 112406/week @ 2019-09-27

418,384 downloads per month
Used in 2,858 crates (53 directly)

MIT/Apache

96KB
2.5K SLoC

unicase

Build Status

Documentation

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

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);

No runtime deps