Struct uncased::UncasedStr
source · #[repr(transparent)]pub struct UncasedStr(_);
Expand description
A cost-free reference to an uncased (case-insensitive, case-preserving) ASCII string.
This is typically created from an &str
as follows:
use uncased::UncasedStr;
let ascii_ref: &UncasedStr = "Hello, world!".into();
Implementations§
source§impl UncasedStr
impl UncasedStr
sourcepub const fn new(string: &str) -> &UncasedStr
pub const fn new(string: &str) -> &UncasedStr
Cost-free conversion from an &str
reference to an UncasedStr
.
This is a const fn
on Rust 1.56+.
Example
use uncased::UncasedStr;
let uncased_str = UncasedStr::new("Hello!");
assert_eq!(uncased_str, "hello!");
assert_eq!(uncased_str, "Hello!");
assert_eq!(uncased_str, "HeLLo!");
sourcepub fn as_str(&self) -> &str
pub fn as_str(&self) -> &str
Returns self
as an &str
.
Example
use uncased::UncasedStr;
let uncased_str = UncasedStr::new("Hello!");
assert_eq!(uncased_str.as_str(), "Hello!");
assert_ne!(uncased_str.as_str(), "hELLo!");
sourcepub fn len(&self) -> usize
pub fn len(&self) -> usize
Returns the length, in bytes, of self
.
Example
use uncased::UncasedStr;
let uncased_str = UncasedStr::new("Hello!");
assert_eq!(uncased_str.len(), 6);
sourcepub fn is_empty(&self) -> bool
pub fn is_empty(&self) -> bool
Returns true
if self
has a length of zero bytes.
Examples
use uncased::UncasedStr;
let s = UncasedStr::new("");
assert!(s.is_empty());
let s = UncasedStr::new("not empty");
assert!(!s.is_empty());
sourcepub fn starts_with(&self, string: &str) -> bool
pub fn starts_with(&self, string: &str) -> bool
Returns true
if self
starts with any casing of the string string
;
otherwise, returns false
.
Example
use uncased::UncasedStr;
let uncased_str = UncasedStr::new("MoOO");
assert!(uncased_str.starts_with("moo"));
assert!(uncased_str.starts_with("MOO"));
assert!(uncased_str.starts_with("MOOO"));
assert!(!uncased_str.starts_with("boo"));
let uncased_str = UncasedStr::new("Bèe");
assert!(!uncased_str.starts_with("Be"));
assert!(uncased_str.starts_with("Bè"));
assert!(uncased_str.starts_with("Bè"));
assert!(uncased_str.starts_with("bèe"));
assert!(uncased_str.starts_with("BèE"));
Trait Implementations§
source§impl AsRef<[u8]> for UncasedStr
impl AsRef<[u8]> for UncasedStr
source§impl AsRef<str> for UncasedStr
impl AsRef<str> for UncasedStr
source§impl Debug for UncasedStr
impl Debug for UncasedStr
source§impl Display for UncasedStr
impl Display for UncasedStr
source§impl<'a> From<&'a str> for &'a UncasedStr
impl<'a> From<&'a str> for &'a UncasedStr
source§fn from(string: &'a str) -> &'a UncasedStr
fn from(string: &'a str) -> &'a UncasedStr
Converts to this type from the input type.
source§impl Hash for UncasedStr
impl Hash for UncasedStr
source§impl<I: SliceIndex<str, Output = str>> Index<I> for UncasedStr
impl<I: SliceIndex<str, Output = str>> Index<I> for UncasedStr
source§impl Ord for UncasedStr
impl Ord for UncasedStr
source§impl PartialEq<&UncasedStr> for str
impl PartialEq<&UncasedStr> for str
source§fn eq(&self, other: &&UncasedStr) -> bool
fn eq(&self, other: &&UncasedStr) -> bool
This method tests for
self
and other
values to be equal, and is used
by ==
.source§impl PartialEq<&str> for UncasedStr
impl PartialEq<&str> for UncasedStr
source§impl PartialEq<UncasedStr> for &str
impl PartialEq<UncasedStr> for &str
source§fn eq(&self, other: &UncasedStr) -> bool
fn eq(&self, other: &UncasedStr) -> bool
This method tests for
self
and other
values to be equal, and is used
by ==
.source§impl PartialEq<UncasedStr> for UncasedStr
impl PartialEq<UncasedStr> for UncasedStr
source§fn eq(&self, other: &UncasedStr) -> bool
fn eq(&self, other: &UncasedStr) -> bool
This method tests for
self
and other
values to be equal, and is used
by ==
.source§impl PartialEq<UncasedStr> for str
impl PartialEq<UncasedStr> for str
source§fn eq(&self, other: &UncasedStr) -> bool
fn eq(&self, other: &UncasedStr) -> bool
This method tests for
self
and other
values to be equal, and is used
by ==
.source§impl PartialEq<str> for &UncasedStr
impl PartialEq<str> for &UncasedStr
source§impl PartialEq<str> for UncasedStr
impl PartialEq<str> for UncasedStr
source§impl PartialOrd<UncasedStr> for UncasedStr
impl PartialOrd<UncasedStr> for UncasedStr
source§fn partial_cmp(&self, other: &UncasedStr) -> Option<Ordering>
fn partial_cmp(&self, other: &UncasedStr) -> Option<Ordering>
1.0.0 · source§fn le(&self, other: &Rhs) -> bool
fn le(&self, other: &Rhs) -> bool
This method tests less than or equal to (for
self
and other
) and is used by the <=
operator. Read moresource§impl PartialOrd<UncasedStr> for str
impl PartialOrd<UncasedStr> for str
source§fn partial_cmp(&self, other: &UncasedStr) -> Option<Ordering>
fn partial_cmp(&self, other: &UncasedStr) -> Option<Ordering>
1.0.0 · source§fn le(&self, other: &Rhs) -> bool
fn le(&self, other: &Rhs) -> bool
This method tests less than or equal to (for
self
and other
) and is used by the <=
operator. Read moresource§impl PartialOrd<str> for UncasedStr
impl PartialOrd<str> for UncasedStr
1.0.0 · source§fn le(&self, other: &Rhs) -> bool
fn le(&self, other: &Rhs) -> bool
This method tests less than or equal to (for
self
and other
) and is used by the <=
operator. Read more