Trait std_prelude::AsciiExt 1.0.0
[−]
[src]
pub trait AsciiExt { type Owned; 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); fn is_ascii_alphabetic(&self) -> bool { ... } fn is_ascii_uppercase(&self) -> bool { ... } fn is_ascii_lowercase(&self) -> bool { ... } fn is_ascii_alphanumeric(&self) -> bool { ... } fn is_ascii_digit(&self) -> bool { ... } fn is_ascii_hexdigit(&self) -> bool { ... } fn is_ascii_punctuation(&self) -> bool { ... } fn is_ascii_graphic(&self) -> bool { ... } fn is_ascii_whitespace(&self) -> bool { ... } fn is_ascii_control(&self) -> bool { ... } }
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!("café".to_ascii_uppercase(), "CAFÉ"); assert_eq!("café".to_ascii_uppercase(), "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}"
.
Associated Types
type Owned
Container type for copied ASCII characters.
Required Methods
fn is_ascii(&self) -> bool
Checks if the value is within the ASCII range.
Examples
use std::ascii::AsciiExt; let ascii = 'a'; let non_ascii = '❤'; let int_ascii = 97; assert!(ascii.is_ascii()); assert!(!non_ascii.is_ascii()); assert!(int_ascii.is_ascii());
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
.
Examples
use std::ascii::AsciiExt; let ascii = 'a'; let non_ascii = '❤'; let int_ascii = 97; assert_eq!('A', ascii.to_ascii_uppercase()); assert_eq!('❤', non_ascii.to_ascii_uppercase()); assert_eq!(65, int_ascii.to_ascii_uppercase());
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
.
Examples
use std::ascii::AsciiExt; let ascii = 'A'; let non_ascii = '❤'; let int_ascii = 65; assert_eq!('a', ascii.to_ascii_lowercase()); assert_eq!('❤', non_ascii.to_ascii_lowercase()); assert_eq!(97, int_ascii.to_ascii_lowercase());
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.
Examples
use std::ascii::AsciiExt; let ascii1 = 'A'; let ascii2 = 'a'; let ascii3 = 'A'; let ascii4 = 'z'; assert!(ascii1.eq_ignore_ascii_case(&ascii2)); assert!(ascii1.eq_ignore_ascii_case(&ascii3)); assert!(!ascii1.eq_ignore_ascii_case(&ascii4));
fn make_ascii_uppercase(&mut self)
1.9.0
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
.
Examples
use std::ascii::AsciiExt; let mut ascii = 'a'; ascii.make_ascii_uppercase(); assert_eq!('A', ascii);
fn make_ascii_lowercase(&mut self)
1.9.0
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
.
Examples
use std::ascii::AsciiExt; let mut ascii = 'A'; ascii.make_ascii_lowercase(); assert_eq!('a', ascii);
Provided Methods
fn is_ascii_alphabetic(&self) -> bool
ascii_ctype
)Checks if the value is an ASCII alphabetic character: U+0041 'A' ... U+005A 'Z' or U+0061 'a' ... U+007A 'z'. For strings, true if all characters in the string are ASCII alphabetic.
Examples
#![feature(ascii_ctype)] use std::ascii::AsciiExt; let A = 'A'; let G = 'G'; let a = 'a'; let g = 'g'; let zero = '0'; let percent = '%'; let space = ' '; let lf = '\n'; let esc = '\u{001b}'; assert!(A.is_ascii_alphabetic()); assert!(G.is_ascii_alphabetic()); assert!(a.is_ascii_alphabetic()); assert!(g.is_ascii_alphabetic()); assert!(!zero.is_ascii_alphabetic()); assert!(!percent.is_ascii_alphabetic()); assert!(!space.is_ascii_alphabetic()); assert!(!lf.is_ascii_alphabetic()); assert!(!esc.is_ascii_alphabetic());
fn is_ascii_uppercase(&self) -> bool
ascii_ctype
)Checks if the value is an ASCII uppercase character: U+0041 'A' ... U+005A 'Z'. For strings, true if all characters in the string are ASCII uppercase.
Examples
#![feature(ascii_ctype)] use std::ascii::AsciiExt; let A = 'A'; let G = 'G'; let a = 'a'; let g = 'g'; let zero = '0'; let percent = '%'; let space = ' '; let lf = '\n'; let esc = '\u{001b}'; assert!(A.is_ascii_uppercase()); assert!(G.is_ascii_uppercase()); assert!(!a.is_ascii_uppercase()); assert!(!g.is_ascii_uppercase()); assert!(!zero.is_ascii_uppercase()); assert!(!percent.is_ascii_uppercase()); assert!(!space.is_ascii_uppercase()); assert!(!lf.is_ascii_uppercase()); assert!(!esc.is_ascii_uppercase());
fn is_ascii_lowercase(&self) -> bool
ascii_ctype
)Checks if the value is an ASCII lowercase character: U+0061 'a' ... U+007A 'z'. For strings, true if all characters in the string are ASCII lowercase.
Examples
#![feature(ascii_ctype)] use std::ascii::AsciiExt; let A = 'A'; let G = 'G'; let a = 'a'; let g = 'g'; let zero = '0'; let percent = '%'; let space = ' '; let lf = '\n'; let esc = '\u{001b}'; assert!(!A.is_ascii_lowercase()); assert!(!G.is_ascii_lowercase()); assert!(a.is_ascii_lowercase()); assert!(g.is_ascii_lowercase()); assert!(!zero.is_ascii_lowercase()); assert!(!percent.is_ascii_lowercase()); assert!(!space.is_ascii_lowercase()); assert!(!lf.is_ascii_lowercase()); assert!(!esc.is_ascii_lowercase());
fn is_ascii_alphanumeric(&self) -> bool
ascii_ctype
)Checks if the value is an ASCII alphanumeric character: U+0041 'A' ... U+005A 'Z', U+0061 'a' ... U+007A 'z', or U+0030 '0' ... U+0039 '9'. For strings, true if all characters in the string are ASCII alphanumeric.
Examples
#![feature(ascii_ctype)] use std::ascii::AsciiExt; let A = 'A'; let G = 'G'; let a = 'a'; let g = 'g'; let zero = '0'; let percent = '%'; let space = ' '; let lf = '\n'; let esc = '\u{001b}'; assert!(A.is_ascii_alphanumeric()); assert!(G.is_ascii_alphanumeric()); assert!(a.is_ascii_alphanumeric()); assert!(g.is_ascii_alphanumeric()); assert!(zero.is_ascii_alphanumeric()); assert!(!percent.is_ascii_alphanumeric()); assert!(!space.is_ascii_alphanumeric()); assert!(!lf.is_ascii_alphanumeric()); assert!(!esc.is_ascii_alphanumeric());
fn is_ascii_digit(&self) -> bool
ascii_ctype
)Checks if the value is an ASCII decimal digit: U+0030 '0' ... U+0039 '9'. For strings, true if all characters in the string are ASCII digits.
Examples
#![feature(ascii_ctype)] use std::ascii::AsciiExt; let A = 'A'; let G = 'G'; let a = 'a'; let g = 'g'; let zero = '0'; let percent = '%'; let space = ' '; let lf = '\n'; let esc = '\u{001b}'; assert!(!A.is_ascii_digit()); assert!(!G.is_ascii_digit()); assert!(!a.is_ascii_digit()); assert!(!g.is_ascii_digit()); assert!(zero.is_ascii_digit()); assert!(!percent.is_ascii_digit()); assert!(!space.is_ascii_digit()); assert!(!lf.is_ascii_digit()); assert!(!esc.is_ascii_digit());
fn is_ascii_hexdigit(&self) -> bool
ascii_ctype
)Checks if the value is an ASCII hexadecimal digit: U+0030 '0' ... U+0039 '9', U+0041 'A' ... U+0046 'F', or U+0061 'a' ... U+0066 'f'. For strings, true if all characters in the string are ASCII hex digits.
Examples
#![feature(ascii_ctype)] use std::ascii::AsciiExt; let A = 'A'; let G = 'G'; let a = 'a'; let g = 'g'; let zero = '0'; let percent = '%'; let space = ' '; let lf = '\n'; let esc = '\u{001b}'; assert!(A.is_ascii_hexdigit()); assert!(!G.is_ascii_hexdigit()); assert!(a.is_ascii_hexdigit()); assert!(!g.is_ascii_hexdigit()); assert!(zero.is_ascii_hexdigit()); assert!(!percent.is_ascii_hexdigit()); assert!(!space.is_ascii_hexdigit()); assert!(!lf.is_ascii_hexdigit()); assert!(!esc.is_ascii_hexdigit());
fn is_ascii_punctuation(&self) -> bool
ascii_ctype
)Checks if the value is an ASCII punctuation character:
U+0021 ... U+002F ! " # $ % & ' ( ) * + , - . /
U+003A ... U+0040 : ; < = > ? @
U+005B ... U+0060 [ \\ ] ^ _ \
U+007B ... U+007E
{ | } ~`
For strings, true if all characters in the string are
ASCII punctuation.
Examples
#![feature(ascii_ctype)] use std::ascii::AsciiExt; let A = 'A'; let G = 'G'; let a = 'a'; let g = 'g'; let zero = '0'; let percent = '%'; let space = ' '; let lf = '\n'; let esc = '\u{001b}'; assert!(!A.is_ascii_punctuation()); assert!(!G.is_ascii_punctuation()); assert!(!a.is_ascii_punctuation()); assert!(!g.is_ascii_punctuation()); assert!(!zero.is_ascii_punctuation()); assert!(percent.is_ascii_punctuation()); assert!(!space.is_ascii_punctuation()); assert!(!lf.is_ascii_punctuation()); assert!(!esc.is_ascii_punctuation());
fn is_ascii_graphic(&self) -> bool
ascii_ctype
)Checks if the value is an ASCII graphic character: U+0021 '@' ... U+007E '~'. For strings, true if all characters in the string are ASCII punctuation.
Examples
#![feature(ascii_ctype)] use std::ascii::AsciiExt; let A = 'A'; let G = 'G'; let a = 'a'; let g = 'g'; let zero = '0'; let percent = '%'; let space = ' '; let lf = '\n'; let esc = '\u{001b}'; assert!(A.is_ascii_graphic()); assert!(G.is_ascii_graphic()); assert!(a.is_ascii_graphic()); assert!(g.is_ascii_graphic()); assert!(zero.is_ascii_graphic()); assert!(percent.is_ascii_graphic()); assert!(!space.is_ascii_graphic()); assert!(!lf.is_ascii_graphic()); assert!(!esc.is_ascii_graphic());
fn is_ascii_whitespace(&self) -> bool
ascii_ctype
)Checks if the value is an ASCII whitespace character: U+0020 SPACE, U+0009 HORIZONTAL TAB, U+000A LINE FEED, U+000C FORM FEED, or U+000D CARRIAGE RETURN. For strings, true if all characters in the string are ASCII whitespace.
Rust uses the WhatWG Infra Standard's definition of ASCII whitespace. There are several other definitions in wide use. For instance, the POSIX locale includes U+000B VERTICAL TAB as well as all the above characters, but—from the very same specification—the default rule for "field splitting" in the Bourne shell considers only SPACE, HORIZONTAL TAB, and LINE FEED as whitespace.
If you are writing a program that will process an existing file format, check what that format's definition of whitespace is before using this function.
Examples
#![feature(ascii_ctype)] use std::ascii::AsciiExt; let A = 'A'; let G = 'G'; let a = 'a'; let g = 'g'; let zero = '0'; let percent = '%'; let space = ' '; let lf = '\n'; let esc = '\u{001b}'; assert!(!A.is_ascii_whitespace()); assert!(!G.is_ascii_whitespace()); assert!(!a.is_ascii_whitespace()); assert!(!g.is_ascii_whitespace()); assert!(!zero.is_ascii_whitespace()); assert!(!percent.is_ascii_whitespace()); assert!(space.is_ascii_whitespace()); assert!(lf.is_ascii_whitespace()); assert!(!esc.is_ascii_whitespace());
fn is_ascii_control(&self) -> bool
ascii_ctype
)Checks if the value is an ASCII control character: U+0000 NUL ... U+001F UNIT SEPARATOR, or U+007F DELETE. Note that most ASCII whitespace characters are control characters, but SPACE is not.
Examples
#![feature(ascii_ctype)] use std::ascii::AsciiExt; let A = 'A'; let G = 'G'; let a = 'a'; let g = 'g'; let zero = '0'; let percent = '%'; let space = ' '; let lf = '\n'; let esc = '\u{001b}'; assert!(!A.is_ascii_control()); assert!(!G.is_ascii_control()); assert!(!a.is_ascii_control()); assert!(!g.is_ascii_control()); assert!(!zero.is_ascii_control()); assert!(!percent.is_ascii_control()); assert!(!space.is_ascii_control()); assert!(lf.is_ascii_control()); assert!(esc.is_ascii_control());
Implementations on Foreign Types
impl AsciiExt for str
[src]
type Owned = String
fn is_ascii(&self) -> bool
[src]
fn to_ascii_uppercase(&self) -> String
[src]
fn to_ascii_lowercase(&self) -> String
[src]
fn eq_ignore_ascii_case(&self, other: &str) -> bool
[src]
fn make_ascii_uppercase(&mut self)
[src]
fn make_ascii_lowercase(&mut self)
[src]
fn is_ascii_alphabetic(&self) -> bool
[src]
ascii_ctype
)fn is_ascii_uppercase(&self) -> bool
[src]
ascii_ctype
)fn is_ascii_lowercase(&self) -> bool
[src]
ascii_ctype
)fn is_ascii_alphanumeric(&self) -> bool
[src]
ascii_ctype
)fn is_ascii_digit(&self) -> bool
[src]
ascii_ctype
)fn is_ascii_hexdigit(&self) -> bool
[src]
ascii_ctype
)fn is_ascii_punctuation(&self) -> bool
[src]
ascii_ctype
)fn is_ascii_graphic(&self) -> bool
[src]
ascii_ctype
)fn is_ascii_whitespace(&self) -> bool
[src]
ascii_ctype
)fn is_ascii_control(&self) -> bool
[src]
ascii_ctype
)impl AsciiExt for u8
[src]
type Owned = u8
fn is_ascii(&self) -> bool
[src]
fn to_ascii_uppercase(&self) -> u8
[src]
fn to_ascii_lowercase(&self) -> u8
[src]
fn eq_ignore_ascii_case(&self, other: &u8) -> bool
[src]
fn make_ascii_uppercase(&mut self)
[src]
fn make_ascii_lowercase(&mut self)
[src]
fn is_ascii_alphabetic(&self) -> bool
[src]
ascii_ctype
)fn is_ascii_uppercase(&self) -> bool
[src]
ascii_ctype
)fn is_ascii_lowercase(&self) -> bool
[src]
ascii_ctype
)fn is_ascii_alphanumeric(&self) -> bool
[src]
ascii_ctype
)fn is_ascii_digit(&self) -> bool
[src]
ascii_ctype
)fn is_ascii_hexdigit(&self) -> bool
[src]
ascii_ctype
)fn is_ascii_punctuation(&self) -> bool
[src]
ascii_ctype
)fn is_ascii_graphic(&self) -> bool
[src]
ascii_ctype
)fn is_ascii_whitespace(&self) -> bool
[src]
ascii_ctype
)fn is_ascii_control(&self) -> bool
[src]
ascii_ctype
)impl AsciiExt for [u8]
[src]
type Owned = Vec<u8>
fn is_ascii(&self) -> bool
[src]
fn to_ascii_uppercase(&self) -> Vec<u8>
[src]
fn to_ascii_lowercase(&self) -> Vec<u8>
[src]
fn eq_ignore_ascii_case(&self, other: &[u8]) -> bool
[src]
fn make_ascii_uppercase(&mut self)
[src]
fn make_ascii_lowercase(&mut self)
[src]
fn is_ascii_alphabetic(&self) -> bool
[src]
ascii_ctype
)fn is_ascii_uppercase(&self) -> bool
[src]
ascii_ctype
)fn is_ascii_lowercase(&self) -> bool
[src]
ascii_ctype
)fn is_ascii_alphanumeric(&self) -> bool
[src]
ascii_ctype
)fn is_ascii_digit(&self) -> bool
[src]
ascii_ctype
)fn is_ascii_hexdigit(&self) -> bool
[src]
ascii_ctype
)fn is_ascii_punctuation(&self) -> bool
[src]
ascii_ctype
)fn is_ascii_graphic(&self) -> bool
[src]
ascii_ctype
)fn is_ascii_whitespace(&self) -> bool
[src]
ascii_ctype
)fn is_ascii_control(&self) -> bool
[src]
ascii_ctype
)impl AsciiExt for char
[src]
type Owned = char
fn is_ascii(&self) -> bool
[src]
fn to_ascii_uppercase(&self) -> char
[src]
fn to_ascii_lowercase(&self) -> char
[src]
fn eq_ignore_ascii_case(&self, other: &char) -> bool
[src]
fn make_ascii_uppercase(&mut self)
[src]
fn make_ascii_lowercase(&mut self)
[src]
fn is_ascii_alphabetic(&self) -> bool
[src]
ascii_ctype
)fn is_ascii_uppercase(&self) -> bool
[src]
ascii_ctype
)fn is_ascii_lowercase(&self) -> bool
[src]
ascii_ctype
)fn is_ascii_alphanumeric(&self) -> bool
[src]
ascii_ctype
)fn is_ascii_digit(&self) -> bool
[src]
ascii_ctype
)fn is_ascii_hexdigit(&self) -> bool
[src]
ascii_ctype
)fn is_ascii_punctuation(&self) -> bool
[src]
ascii_ctype
)fn is_ascii_graphic(&self) -> bool
[src]
ascii_ctype
)fn is_ascii_whitespace(&self) -> bool
[src]
ascii_ctype
)fn is_ascii_control(&self) -> bool
[src]
ascii_ctype
)