Crate uncased[−][src]
Case-preserving, ASCII case-insensitive no_std
string types.
An uncased string is case-preserving. That is, the string itself contains cased characters, but comparison (including ordering, equality, and hashing) is ASCII case-insensitive.
use uncased::UncasedStr; let x: &UncasedStr = "hello!".into(); let y: &UncasedStr = "HelLo!".into(); assert_eq!(x, y); assert_eq!(x.as_str(), "hello!"); assert_eq!(y.as_str(), "HelLo!"); let x_sub = &x[..4]; let y_sub = &y[..4]; assert_eq!(x_sub, y_sub); assert_eq!(x_sub.as_str(), "hell"); assert_eq!(y_sub.as_str(), "HelL");
Unicode
This crate does not perform Unicode case-folding. For Unicode
case-folding, see unicase
.
Features and no_std
Crate features:
alloc
(default) - enables theUncased
typewith-serde
- enables (de)serializing ofUncasedStr
viaserde
with-serde-alloc
- enablesalloc
, (de)serializing ofUncasedStr
andUncased
viaserde
This crate is #![no_std]
compatible. By default, the alloc
feature is
enabled, which enables the Uncased
type but requires alloc
support. To
disable the feature, disable this crate’s default features:
[dependencies]
uncased = { version = "0.9", default-features = false }
In addition to the alloc
feature, support for (de)serializing UncasedStr
with serde
can be enabled via the with-serde
feature. Support for
(de)serserializing both UncasedStr
and Uncased
can be enabled via the
with-serde-alloc
feature, which implicitly enables the alloc
feature.
Structs
Uncased | alloc An uncased (case-insensitive, case-preserving), owned or borrowed ASCII string. |
UncasedStr | A cost-free reference to an uncased (case-insensitive, case-preserving) ASCII string. |
Traits
AsUncased | Helper trait to convert string-like references to |
Functions
eq | Returns true if |