pub trait AsciiExt {
type Owned;
// Required methods
fn is_ascii(&self) -> bool;
fn to_ascii_uppercase(&self) -> Self::Owned;
fn to_ascii_lowercase(&self) -> Self::Owned;
fn eq_ignore_ascii_case(&self, other: &Self) -> bool;
fn make_ascii_uppercase(&mut self);
fn make_ascii_lowercase(&mut self);
}
Expand description
Extension methods for ASCII-subset only operations.
Be aware that operations on seemingly non-ASCII characters can sometimes have unexpected results. Consider this example:
use std::ascii::AsciiExt;
assert_eq!(AsciiExt::to_ascii_uppercase("cafeฬ"), "CAFEฬ");
assert_eq!(AsciiExt::to_ascii_uppercase("cafรฉ"), "CAFรฉ");
In the first example, the lowercased string is represented "cafe\u{301}"
(the last character is an acute accent combining character). Unlike the
other characters in the string, the combining character will not get mapped
to an uppercase variant, resulting in "CAFE\u{301}"
. In the second
example, the lowercased string is represented "caf\u{e9}"
(the last
character is a single Unicode character representing an โeโ with an acute
accent). Since the last character is defined outside the scope of ASCII,
it will not get mapped to an uppercase variant, resulting in "CAF\u{e9}"
.
Required Associated Typesยง
Required Methodsยง
1.0.0 ยท Sourcefn is_ascii(&self) -> bool
๐Deprecated since 1.26.0: use inherent methods instead
fn is_ascii(&self) -> bool
Checks if the value is within the ASCII range.
ยงNote
This method is deprecated in favor of the identically-named
inherent methods on u8
, char
, [u8]
and str
.
1.0.0 ยท Sourcefn to_ascii_uppercase(&self) -> Self::Owned
๐Deprecated since 1.26.0: use inherent methods instead
fn to_ascii_uppercase(&self) -> Self::Owned
Makes a copy of the value in its ASCII upper case equivalent.
ASCII letters โaโ to โzโ are mapped to โAโ to โZโ, but non-ASCII letters are unchanged.
To uppercase the value in-place, use make_ascii_uppercase
.
To uppercase ASCII characters in addition to non-ASCII characters, use
str::to_uppercase
.
ยงNote
This method is deprecated in favor of the identically-named
inherent methods on u8
, char
, [u8]
and str
.
1.0.0 ยท Sourcefn to_ascii_lowercase(&self) -> Self::Owned
๐Deprecated since 1.26.0: use inherent methods instead
fn to_ascii_lowercase(&self) -> Self::Owned
Makes a copy of the value in its ASCII lower case equivalent.
ASCII letters โAโ to โZโ are mapped to โaโ to โzโ, but non-ASCII letters are unchanged.
To lowercase the value in-place, use make_ascii_lowercase
.
To lowercase ASCII characters in addition to non-ASCII characters, use
str::to_lowercase
.
ยงNote
This method is deprecated in favor of the identically-named
inherent methods on u8
, char
, [u8]
and str
.
1.0.0 ยท Sourcefn eq_ignore_ascii_case(&self, other: &Self) -> bool
๐Deprecated since 1.26.0: use inherent methods instead
fn eq_ignore_ascii_case(&self, other: &Self) -> bool
Checks that two values are an ASCII case-insensitive match.
Same as to_ascii_lowercase(a) == to_ascii_lowercase(b)
,
but without allocating and copying temporaries.
ยงNote
This method is deprecated in favor of the identically-named
inherent methods on u8
, char
, [u8]
and str
.
1.9.0 ยท Sourcefn make_ascii_uppercase(&mut self)
๐Deprecated since 1.26.0: use inherent methods instead
fn make_ascii_uppercase(&mut self)
Converts this type to its ASCII upper case equivalent in-place.
ASCII letters โaโ to โzโ are mapped to โAโ to โZโ, but non-ASCII letters are unchanged.
To return a new uppercased value without modifying the existing one, use
to_ascii_uppercase
.
ยงNote
This method is deprecated in favor of the identically-named
inherent methods on u8
, char
, [u8]
and str
.
1.9.0 ยท Sourcefn make_ascii_lowercase(&mut self)
๐Deprecated since 1.26.0: use inherent methods instead
fn make_ascii_lowercase(&mut self)
Converts this type to its ASCII lower case equivalent in-place.
ASCII letters โAโ to โZโ are mapped to โaโ to โzโ, but non-ASCII letters are unchanged.
To return a new lowercased value without modifying the existing one, use
to_ascii_lowercase
.
ยงNote
This method is deprecated in favor of the identically-named
inherent methods on u8
, char
, [u8]
and str
.
Dyn Compatibilityยง
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.