#[repr(u8)]
pub enum AsciiChar {
Show 128 variants Null, SOH, SOX, ETX, EOT, ENQ, ACK, Bell, BackSpace, Tab, LineFeed, VT, FF, CarriageReturn, SI, SO, DLE, DC1, DC2, DC3, DC4, NAK, SYN, ETB, CAN, EM, SUB, ESC, FS, GS, RS, US, Space, Exclamation, Quotation, Hash, Dollar, Percent, Ampersand, Apostrophe, ParenOpen, ParenClose, Asterisk, Plus, Comma, Minus, Dot, Slash, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, Colon, Semicolon, LessThan, Equal, GreaterThan, Question, At, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, BracketOpen, BackSlash, BracketClose, Caret, UnderScore, Grave, a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, CurlyBraceOpen, VerticalBar, CurlyBraceClose, Tilde, DEL,
}
Expand description

An ASCII character. It wraps a u8, with the highest bit always zero.

Variants

Null

'\0'

SOH

SOX

ETX

EOT

ENQ

ACK

Bell

bell / alarm / audible

'\a' is not recognized by Rust.

BackSpace

Backspace

'\b' is not recognized by Rust.

Tab

'\t'

LineFeed

'\n'

VT

Vertical tab

'\v' is not recognized by Rust.

FF

Form Feed

'\f' is not recognized by Rust.

CarriageReturn

'\r'

SI

SO

DLE

DC1

DC2

Device control 2

DC3

Device control 3, Often XOFF

DC4

Device control 4

NAK

SYN

ETB

CAN

EM

SUB

ESC

Escape

'\e' is not recognized by Rust.

FS

GS

RS

US

Space

' '

Exclamation

'!'

Quotation

'"'

Hash

'#'

Dollar

'$'

Percent

'%'

Ampersand

'&'

Apostrophe

'\''

ParenOpen

'('

ParenClose

')'

Asterisk

'*'

Plus

'+'

Comma

','

Minus

'-'

Dot

'.'

Slash

'/'

_0

'0'

_1

'1'

_2

'2'

_3

'3'

_4

'4'

_5

'5'

_6

'6'

_7

'7'

_8

'8'

_9

'9'

Colon

':'

Semicolon

';'

LessThan

'<'

Equal

'='

GreaterThan

'>'

Question

'?'

At

'@'

A

'A'

B

'B'

C

'C'

D

'D'

E

'E'

F

'F'

G

'G'

H

'H'

I

'I'

J

'J'

K

'K'

L

'L'

M

'M'

N

'N'

O

'O'

P

'P'

Q

'Q'

R

'R'

S

'S'

T

'T'

U

'U'

V

'V'

W

'W'

X

'X'

Y

'Y'

Z

'Z'

BracketOpen

'['

BackSlash

'\'

BracketClose

']'

Caret

'^'

UnderScore

'_'

Grave

'’`

a

'a'

b

'b'

c

'c'

d

'd'

e

'e'

f

'f'

g

'g'

h

'h'

i

'i'

j

'j'

k

'k'

l

'l'

m

'm'

n

'n'

o

'o'

p

'p'

q

'q'

r

'r'

s

's'

t

't'

u

'u'

v

'v'

w

'w'

x

'x'

y

'y'

z

'z'

CurlyBraceOpen

'{'

VerticalBar

'|'

CurlyBraceClose

'}'

Tilde

'~'

DEL

Implementations

Constructs an ASCII character from a u8, char or other character type.

Errors

Returns Err(()) if the character can’t be ASCII encoded.

Example
let a = AsciiChar::from_ascii('g').unwrap();
assert_eq!(a.as_char(), 'g');

Create an AsciiChar from a char, panicking if it’s not ASCII.

This function is intended for creating AsciiChar values from hardcoded known-good character literals such as 'K', '-' or '\0', and for use in const contexts. Use from_ascii() instead when you’re not certain the character is ASCII.

Examples
assert_eq!(AsciiChar::new('@'), AsciiChar::At);
assert_eq!(AsciiChar::new('C').as_char(), 'C');

In a constant:

const SPLIT_ON: AsciiChar = AsciiChar::new(',');

This will not compile:

const BAD: AsciiChar = AsciiChar::new('Ø');
Panics

This function will panic if passed a non-ASCII character.

The panic message might not be the most descriptive due to the current limitations of const fn.

Constructs an ASCII character from a u8, char or other character type without any checks.

Safety

This function is very unsafe as it can create invalid enum discriminants, which instantly creates undefined behavior. (let _ = AsciiChar::from_ascii_unchecked(200); alone is UB).

The undefined behavior is not just theoretical either: For example, [0; 128][AsciiChar::from_ascii_unchecked(255) as u8 as usize] = 0 might not panic, creating a buffer overflow, and Some(AsciiChar::from_ascii_unchecked(128)) might be None.

Converts an ASCII character into a u8.

Converts an ASCII character into a char.

Check if the character is a letter (a-z, A-Z)

Check if the character is a letter (a-z, A-Z).

This method is identical to is_alphabetic()

Check if the character is a digit in the given radix.

If the radix is always 10 or 16, is_ascii_digit() and is_ascii_hexdigit() will be faster.

Panics

Radixes greater than 36 are not supported and will result in a panic.

Check if the character is a number (0-9)

Examples
assert_eq!(AsciiChar::new('0').is_ascii_digit(), true);
assert_eq!(AsciiChar::new('9').is_ascii_digit(), true);
assert_eq!(AsciiChar::new('a').is_ascii_digit(), false);
assert_eq!(AsciiChar::new('A').is_ascii_digit(), false);
assert_eq!(AsciiChar::new('/').is_ascii_digit(), false);

Check if the character is a letter or number

Check if the character is a letter or number

This method is identical to is_alphanumeric()

Check if the character is a space or horizontal tab

Examples
assert!(AsciiChar::Space.is_ascii_blank());
assert!(AsciiChar::Tab.is_ascii_blank());
assert!(!AsciiChar::VT.is_ascii_blank());
assert!(!AsciiChar::LineFeed.is_ascii_blank());
assert!(!AsciiChar::CarriageReturn.is_ascii_blank());
assert!(!AsciiChar::FF.is_ascii_blank());

Check if the character one of ’ ’, ‘\t’, ‘\n’, ‘\r’, ‘\0xb’ (vertical tab) or ‘\0xc’ (form feed).

Check if the character is a ’ ’, ‘\t’, ‘\n’, ‘\r’ or ‘\0xc’ (form feed).

This method is NOT identical to is_whitespace().

Check if the character is a control character

Examples
assert_eq!(AsciiChar::new('\0').is_ascii_control(), true);
assert_eq!(AsciiChar::new('n').is_ascii_control(), false);
assert_eq!(AsciiChar::new(' ').is_ascii_control(), false);
assert_eq!(AsciiChar::new('\n').is_ascii_control(), true);
assert_eq!(AsciiChar::new('\t').is_ascii_control(), true);
assert_eq!(AsciiChar::EOT.is_ascii_control(), true);

Checks if the character is printable (except space)

Examples
assert_eq!(AsciiChar::new('n').is_ascii_graphic(), true);
assert_eq!(AsciiChar::new(' ').is_ascii_graphic(), false);
assert_eq!(AsciiChar::new('\n').is_ascii_graphic(), false);

Checks if the character is printable (including space)

Examples
assert_eq!(AsciiChar::new('n').is_ascii_printable(), true);
assert_eq!(AsciiChar::new(' ').is_ascii_printable(), true);
assert_eq!(AsciiChar::new('\n').is_ascii_printable(), false);

Checks if the character is alphabetic and lowercase (a-z).

Examples
use ascii::AsciiChar;
assert_eq!(AsciiChar::new('a').is_lowercase(), true);
assert_eq!(AsciiChar::new('A').is_lowercase(), false);
assert_eq!(AsciiChar::new('@').is_lowercase(), false);

Checks if the character is alphabetic and lowercase (a-z).

This method is identical to is_lowercase()

Checks if the character is alphabetic and uppercase (A-Z).

Examples
assert_eq!(AsciiChar::new('A').is_uppercase(), true);
assert_eq!(AsciiChar::new('a').is_uppercase(), false);
assert_eq!(AsciiChar::new('@').is_uppercase(), false);

Checks if the character is alphabetic and uppercase (A-Z).

This method is identical to is_uppercase()

Checks if the character is punctuation

Examples
assert_eq!(AsciiChar::new('n').is_ascii_punctuation(), false);
assert_eq!(AsciiChar::new(' ').is_ascii_punctuation(), false);
assert_eq!(AsciiChar::new('_').is_ascii_punctuation(), true);
assert_eq!(AsciiChar::new('~').is_ascii_punctuation(), true);

Checks if the character is a valid hex digit

Examples
assert_eq!(AsciiChar::new('5').is_ascii_hexdigit(), true);
assert_eq!(AsciiChar::new('a').is_ascii_hexdigit(), true);
assert_eq!(AsciiChar::new('F').is_ascii_hexdigit(), true);
assert_eq!(AsciiChar::new('G').is_ascii_hexdigit(), false);
assert_eq!(AsciiChar::new(' ').is_ascii_hexdigit(), false);

Unicode has printable versions of the ASCII control codes, like ‘␛’.

This function is identical with .as_char() for all values .is_printable() returns true for, but replaces the control codes with those unicodes printable versions.

Examples
assert_eq!(AsciiChar::new('\0').as_printable_char(), '␀');
assert_eq!(AsciiChar::new('\n').as_printable_char(), '␊');
assert_eq!(AsciiChar::new(' ').as_printable_char(), ' ');
assert_eq!(AsciiChar::new('p').as_printable_char(), 'p');

Replaces letters a to z with A to Z

Replaces letters A to Z with a to z

Maps letters a-z to A-Z and returns any other character unchanged.

Examples
assert_eq!(AsciiChar::new('u').to_ascii_uppercase().as_char(), 'U');
assert_eq!(AsciiChar::new('U').to_ascii_uppercase().as_char(), 'U');
assert_eq!(AsciiChar::new('2').to_ascii_uppercase().as_char(), '2');
assert_eq!(AsciiChar::new('=').to_ascii_uppercase().as_char(), '=');
assert_eq!(AsciiChar::new('[').to_ascii_uppercase().as_char(), '[');

Maps letters A-Z to a-z and returns any other character unchanged.

Examples
assert_eq!(AsciiChar::new('U').to_ascii_lowercase().as_char(), 'u');
assert_eq!(AsciiChar::new('u').to_ascii_lowercase().as_char(), 'u');
assert_eq!(AsciiChar::new('2').to_ascii_lowercase().as_char(), '2');
assert_eq!(AsciiChar::new('^').to_ascii_lowercase().as_char(), '^');
assert_eq!(AsciiChar::new('\x7f').to_ascii_lowercase().as_char(), '\x7f');

Compares two characters case-insensitively.

Trait Implementations

Converts this type into a shared reference of the (usually inferred) input type.
Returns a copy of the value. Read more
Performs copy-assignment from source. Read more
Formats the value using the given formatter. Read more
Returns the “default value” for a type. Read more
Formats the value using the given formatter. Read more
Converts to this type from the input type.
Converts to this type from the input type.
Converts to this type from the input type.
Feeds this value into the given Hasher. Read more
Feeds a slice of this type into the given Hasher. Read more
This method returns an Ordering between self and other. Read more
Compares and returns the maximum of two values. Read more
Compares and returns the minimum of two values. Read more
Restrict a value to a certain interval. Read more
This method tests for self and other values to be equal, and is used by ==. Read more
This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason. Read more
This method tests for self and other values to be equal, and is used by ==. Read more
This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason. Read more
This method tests for self and other values to be equal, and is used by ==. Read more
This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason. Read more
This method tests for self and other values to be equal, and is used by ==. Read more
This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason. Read more
This method tests for self and other values to be equal, and is used by ==. Read more
This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason. Read more
This method returns an ordering between self and other values if one exists. Read more
This method tests less than (for self and other) and is used by the < operator. Read more
This method tests less than or equal to (for self and other) and is used by the <= operator. Read more
This method tests greater than (for self and other) and is used by the > operator. Read more
This method tests greater than or equal to (for self and other) and is used by the >= operator. Read more
This method returns an ordering between self and other values if one exists. Read more
This method tests less than (for self and other) and is used by the < operator. Read more
This method tests less than or equal to (for self and other) and is used by the <= operator. Read more
This method tests greater than (for self and other) and is used by the > operator. Read more
This method tests greater than or equal to (for self and other) and is used by the >= operator. Read more
This method returns an ordering between self and other values if one exists. Read more
This method tests less than (for self and other) and is used by the < operator. Read more
This method tests less than or equal to (for self and other) and is used by the <= operator. Read more
This method tests greater than (for self and other) and is used by the > operator. Read more
This method tests greater than or equal to (for self and other) and is used by the >= operator. Read more
This method returns an ordering between self and other values if one exists. Read more
This method tests less than (for self and other) and is used by the < operator. Read more
This method tests less than or equal to (for self and other) and is used by the <= operator. Read more
This method tests greater than (for self and other) and is used by the > operator. Read more
This method tests greater than or equal to (for self and other) and is used by the >= operator. Read more
This method returns an ordering between self and other values if one exists. Read more
This method tests less than (for self and other) and is used by the < operator. Read more
This method tests less than or equal to (for self and other) and is used by the <= operator. Read more
This method tests greater than (for self and other) and is used by the > operator. Read more
This method tests greater than or equal to (for self and other) and is used by the >= operator. Read more
Convert to AsciiChar. Read more
Convert to AsciiChar without checking that it is an ASCII character. Read more

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more
Immutably borrows from an owned value. Read more
Mutably borrows from an owned value. Read more

Returns the argument unchanged.

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

The resulting type after obtaining ownership.
Creates owned data from borrowed data, usually by cloning. Read more
Uses borrowed data to replace owned data, usually by cloning. Read more
Converts the given value to a String. Read more
The type returned in the event of a conversion error.
Performs the conversion.
The type returned in the event of a conversion error.
Performs the conversion.