21 releases (stable)

2.4.0 Apr 30, 2019
2.3.0 Mar 5, 2019
2.2.0 Oct 5, 2018
2.1.0 Nov 16, 2017
0.0.5 Feb 20, 2015

#11 in Text processing

Download history 70176/week @ 2019-03-26 78684/week @ 2019-04-02 86917/week @ 2019-04-09 74004/week @ 2019-04-16 78986/week @ 2019-04-23 86305/week @ 2019-04-30 87291/week @ 2019-05-07 91447/week @ 2019-05-14 89893/week @ 2019-05-21 101087/week @ 2019-05-28 101328/week @ 2019-06-04 99137/week @ 2019-06-11 104614/week @ 2019-06-18 102043/week @ 2019-06-25 89395/week @ 2019-07-02

357,595 downloads per month
Used in 2,819 crates (52 directly)

MIT/Apache

89KB
2K SLoC

unicase

Build Status

Documentation

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

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