Char in std::ascii - Rust (original) (raw)


#[repr(u8)]

pub enum Char {
Show 128 variants    Null = 0,
    StartOfHeading = 1,
    StartOfText = 2,
    EndOfText = 3,
    EndOfTransmission = 4,
    Enquiry = 5,
    Acknowledge = 6,
    Bell = 7,
    Backspace = 8,
    CharacterTabulation = 9,
    LineFeed = 10,
    LineTabulation = 11,
    FormFeed = 12,
    CarriageReturn = 13,
    ShiftOut = 14,
    ShiftIn = 15,
    DataLinkEscape = 16,
    DeviceControlOne = 17,
    DeviceControlTwo = 18,
    DeviceControlThree = 19,
    DeviceControlFour = 20,
    NegativeAcknowledge = 21,
    SynchronousIdle = 22,
    EndOfTransmissionBlock = 23,
    Cancel = 24,
    EndOfMedium = 25,
    Substitute = 26,
    Escape = 27,
    InformationSeparatorFour = 28,
    InformationSeparatorThree = 29,
    InformationSeparatorTwo = 30,
    InformationSeparatorOne = 31,
    Space = 32,
    ExclamationMark = 33,
    QuotationMark = 34,
    NumberSign = 35,
    DollarSign = 36,
    PercentSign = 37,
    Ampersand = 38,
    Apostrophe = 39,
    LeftParenthesis = 40,
    RightParenthesis = 41,
    Asterisk = 42,
    PlusSign = 43,
    Comma = 44,
    HyphenMinus = 45,
    FullStop = 46,
    Solidus = 47,
    Digit0 = 48,
    Digit1 = 49,
    Digit2 = 50,
    Digit3 = 51,
    Digit4 = 52,
    Digit5 = 53,
    Digit6 = 54,
    Digit7 = 55,
    Digit8 = 56,
    Digit9 = 57,
    Colon = 58,
    Semicolon = 59,
    LessThanSign = 60,
    EqualsSign = 61,
    GreaterThanSign = 62,
    QuestionMark = 63,
    CommercialAt = 64,
    CapitalA = 65,
    CapitalB = 66,
    CapitalC = 67,
    CapitalD = 68,
    CapitalE = 69,
    CapitalF = 70,
    CapitalG = 71,
    CapitalH = 72,
    CapitalI = 73,
    CapitalJ = 74,
    CapitalK = 75,
    CapitalL = 76,
    CapitalM = 77,
    CapitalN = 78,
    CapitalO = 79,
    CapitalP = 80,
    CapitalQ = 81,
    CapitalR = 82,
    CapitalS = 83,
    CapitalT = 84,
    CapitalU = 85,
    CapitalV = 86,
    CapitalW = 87,
    CapitalX = 88,
    CapitalY = 89,
    CapitalZ = 90,
    LeftSquareBracket = 91,
    ReverseSolidus = 92,
    RightSquareBracket = 93,
    CircumflexAccent = 94,
    LowLine = 95,
    GraveAccent = 96,
    SmallA = 97,
    SmallB = 98,
    SmallC = 99,
    SmallD = 100,
    SmallE = 101,
    SmallF = 102,
    SmallG = 103,
    SmallH = 104,
    SmallI = 105,
    SmallJ = 106,
    SmallK = 107,
    SmallL = 108,
    SmallM = 109,
    SmallN = 110,
    SmallO = 111,
    SmallP = 112,
    SmallQ = 113,
    SmallR = 114,
    SmallS = 115,
    SmallT = 116,
    SmallU = 117,
    SmallV = 118,
    SmallW = 119,
    SmallX = 120,
    SmallY = 121,
    SmallZ = 122,
    LeftCurlyBracket = 123,
    VerticalLine = 124,
    RightCurlyBracket = 125,
    Tilde = 126,
    Delete = 127,
}

🔬This is a nightly-only experimental API. (ascii_char #110998)

Expand description

One of the 128 Unicode characters from U+0000 through U+007F, often known as the ASCII subset.

Officially, this is the first block in Unicode, Basic Latin. For details, see the C0 Controls and Basic Latin code chart.

This block was based on older 7-bit character code standards such as ANSI X3.4-1977, ISO 646-1973, and NIST FIPS 1-2.

§When to use this

The main advantage of this subset is that it’s always valid UTF-8. As such, the &[ascii::Char] -> &str conversion function (as well as other related ones) are O(1): no runtime checks are needed.

If you’re consuming strings, you should usually handle Unicode and thus accept strs, not limit yourself to ascii::Chars.

However, certain formats are intentionally designed to produce ASCII-only output in order to be 8-bit-clean. In those cases, it can be simpler and faster to generate ascii::Chars instead of dealing with the variable width properties of general UTF-8 encoded strings, while still allowing the result to be used freely with other Rust things that deal in general strs.

For example, a UUID library might offer a way to produce the string representation of a UUID as an [ascii::Char; 36] to avoid memory allocation yet still allow it to be used as UTF-8 via as_str without paying for validation (or needing unsafe code) the way it would if it were provided as a [u8; 36].

§Layout

This type is guaranteed to have a size and alignment of 1 byte.

§Names

The variants on this type are Unicode names of the characters in upper camel case, with a few tweaks:

§

🔬This is a nightly-only experimental API. (ascii_char_variants #110998)

U+0000 (The default variant)

§

🔬This is a nightly-only experimental API. (ascii_char_variants #110998)

U+0001

§

🔬This is a nightly-only experimental API. (ascii_char_variants #110998)

U+0002

§

🔬This is a nightly-only experimental API. (ascii_char_variants #110998)

U+0003

§

🔬This is a nightly-only experimental API. (ascii_char_variants #110998)

U+0004

§

🔬This is a nightly-only experimental API. (ascii_char_variants #110998)

U+0005

§

🔬This is a nightly-only experimental API. (ascii_char_variants #110998)

U+0006

§

🔬This is a nightly-only experimental API. (ascii_char_variants #110998)

U+0007

§

🔬This is a nightly-only experimental API. (ascii_char_variants #110998)

U+0008

§

🔬This is a nightly-only experimental API. (ascii_char_variants #110998)

U+0009

§

🔬This is a nightly-only experimental API. (ascii_char_variants #110998)

U+000A

§

🔬This is a nightly-only experimental API. (ascii_char_variants #110998)

U+000B

§

🔬This is a nightly-only experimental API. (ascii_char_variants #110998)

U+000C

§

🔬This is a nightly-only experimental API. (ascii_char_variants #110998)

U+000D

§

🔬This is a nightly-only experimental API. (ascii_char_variants #110998)

U+000E

§

🔬This is a nightly-only experimental API. (ascii_char_variants #110998)

U+000F

§

🔬This is a nightly-only experimental API. (ascii_char_variants #110998)

U+0010

§

🔬This is a nightly-only experimental API. (ascii_char_variants #110998)

U+0011

§

🔬This is a nightly-only experimental API. (ascii_char_variants #110998)

U+0012

§

🔬This is a nightly-only experimental API. (ascii_char_variants #110998)

U+0013

§

🔬This is a nightly-only experimental API. (ascii_char_variants #110998)

U+0014

§

🔬This is a nightly-only experimental API. (ascii_char_variants #110998)

U+0015

§

🔬This is a nightly-only experimental API. (ascii_char_variants #110998)

U+0016

§

🔬This is a nightly-only experimental API. (ascii_char_variants #110998)

U+0017

§

🔬This is a nightly-only experimental API. (ascii_char_variants #110998)

U+0018

§

🔬This is a nightly-only experimental API. (ascii_char_variants #110998)

U+0019

§

🔬This is a nightly-only experimental API. (ascii_char_variants #110998)

U+001A

§

🔬This is a nightly-only experimental API. (ascii_char_variants #110998)

U+001B

§

🔬This is a nightly-only experimental API. (ascii_char_variants #110998)

U+001C

§

🔬This is a nightly-only experimental API. (ascii_char_variants #110998)

U+001D

§

🔬This is a nightly-only experimental API. (ascii_char_variants #110998)

U+001E

§

🔬This is a nightly-only experimental API. (ascii_char_variants #110998)

U+001F

§

🔬This is a nightly-only experimental API. (ascii_char_variants #110998)

U+0020

§

🔬This is a nightly-only experimental API. (ascii_char_variants #110998)

U+0021

§

🔬This is a nightly-only experimental API. (ascii_char_variants #110998)

U+0022

§

🔬This is a nightly-only experimental API. (ascii_char_variants #110998)

U+0023

§

🔬This is a nightly-only experimental API. (ascii_char_variants #110998)

U+0024

§

🔬This is a nightly-only experimental API. (ascii_char_variants #110998)

U+0025

§

🔬This is a nightly-only experimental API. (ascii_char_variants #110998)

U+0026

§

🔬This is a nightly-only experimental API. (ascii_char_variants #110998)

U+0027

§

🔬This is a nightly-only experimental API. (ascii_char_variants #110998)

U+0028

§

🔬This is a nightly-only experimental API. (ascii_char_variants #110998)

U+0029

§

🔬This is a nightly-only experimental API. (ascii_char_variants #110998)

U+002A

§

🔬This is a nightly-only experimental API. (ascii_char_variants #110998)

U+002B

§

🔬This is a nightly-only experimental API. (ascii_char_variants #110998)

U+002C

§

🔬This is a nightly-only experimental API. (ascii_char_variants #110998)

U+002D

§

🔬This is a nightly-only experimental API. (ascii_char_variants #110998)

U+002E

§

🔬This is a nightly-only experimental API. (ascii_char_variants #110998)

U+002F

§

🔬This is a nightly-only experimental API. (ascii_char_variants #110998)

U+0030

§

🔬This is a nightly-only experimental API. (ascii_char_variants #110998)

U+0031

§

🔬This is a nightly-only experimental API. (ascii_char_variants #110998)

U+0032

§

🔬This is a nightly-only experimental API. (ascii_char_variants #110998)

U+0033

§

🔬This is a nightly-only experimental API. (ascii_char_variants #110998)

U+0034

§

🔬This is a nightly-only experimental API. (ascii_char_variants #110998)

U+0035

§

🔬This is a nightly-only experimental API. (ascii_char_variants #110998)

U+0036

§

🔬This is a nightly-only experimental API. (ascii_char_variants #110998)

U+0037

§

🔬This is a nightly-only experimental API. (ascii_char_variants #110998)

U+0038

§

🔬This is a nightly-only experimental API. (ascii_char_variants #110998)

U+0039

§

🔬This is a nightly-only experimental API. (ascii_char_variants #110998)

U+003A

§

🔬This is a nightly-only experimental API. (ascii_char_variants #110998)

U+003B

§

🔬This is a nightly-only experimental API. (ascii_char_variants #110998)

U+003C

§

🔬This is a nightly-only experimental API. (ascii_char_variants #110998)

U+003D

§

🔬This is a nightly-only experimental API. (ascii_char_variants #110998)

U+003E

§

🔬This is a nightly-only experimental API. (ascii_char_variants #110998)

U+003F

§

🔬This is a nightly-only experimental API. (ascii_char_variants #110998)

U+0040

§

🔬This is a nightly-only experimental API. (ascii_char_variants #110998)

U+0041

§

🔬This is a nightly-only experimental API. (ascii_char_variants #110998)

U+0042

§

🔬This is a nightly-only experimental API. (ascii_char_variants #110998)

U+0043

§

🔬This is a nightly-only experimental API. (ascii_char_variants #110998)

U+0044

§

🔬This is a nightly-only experimental API. (ascii_char_variants #110998)

U+0045

§

🔬This is a nightly-only experimental API. (ascii_char_variants #110998)

U+0046

§

🔬This is a nightly-only experimental API. (ascii_char_variants #110998)

U+0047

§

🔬This is a nightly-only experimental API. (ascii_char_variants #110998)

U+0048

§

🔬This is a nightly-only experimental API. (ascii_char_variants #110998)

U+0049

§

🔬This is a nightly-only experimental API. (ascii_char_variants #110998)

U+004A

§

🔬This is a nightly-only experimental API. (ascii_char_variants #110998)

U+004B

§

🔬This is a nightly-only experimental API. (ascii_char_variants #110998)

U+004C

§

🔬This is a nightly-only experimental API. (ascii_char_variants #110998)

U+004D

§

🔬This is a nightly-only experimental API. (ascii_char_variants #110998)

U+004E

§

🔬This is a nightly-only experimental API. (ascii_char_variants #110998)

U+004F

§

🔬This is a nightly-only experimental API. (ascii_char_variants #110998)

U+0050

§

🔬This is a nightly-only experimental API. (ascii_char_variants #110998)

U+0051

§

🔬This is a nightly-only experimental API. (ascii_char_variants #110998)

U+0052

§

🔬This is a nightly-only experimental API. (ascii_char_variants #110998)

U+0053

§

🔬This is a nightly-only experimental API. (ascii_char_variants #110998)

U+0054

§

🔬This is a nightly-only experimental API. (ascii_char_variants #110998)

U+0055

§

🔬This is a nightly-only experimental API. (ascii_char_variants #110998)

U+0056

§

🔬This is a nightly-only experimental API. (ascii_char_variants #110998)

U+0057

§

🔬This is a nightly-only experimental API. (ascii_char_variants #110998)

U+0058

§

🔬This is a nightly-only experimental API. (ascii_char_variants #110998)

U+0059

§

🔬This is a nightly-only experimental API. (ascii_char_variants #110998)

U+005A

§

🔬This is a nightly-only experimental API. (ascii_char_variants #110998)

U+005B

§

🔬This is a nightly-only experimental API. (ascii_char_variants #110998)

U+005C

§

🔬This is a nightly-only experimental API. (ascii_char_variants #110998)

U+005D

§

🔬This is a nightly-only experimental API. (ascii_char_variants #110998)

U+005E

§

🔬This is a nightly-only experimental API. (ascii_char_variants #110998)

U+005F

§

🔬This is a nightly-only experimental API. (ascii_char_variants #110998)

U+0060

§

🔬This is a nightly-only experimental API. (ascii_char_variants #110998)

U+0061

§

🔬This is a nightly-only experimental API. (ascii_char_variants #110998)

U+0062

§

🔬This is a nightly-only experimental API. (ascii_char_variants #110998)

U+0063

§

🔬This is a nightly-only experimental API. (ascii_char_variants #110998)

U+0064

§

🔬This is a nightly-only experimental API. (ascii_char_variants #110998)

U+0065

§

🔬This is a nightly-only experimental API. (ascii_char_variants #110998)

U+0066

§

🔬This is a nightly-only experimental API. (ascii_char_variants #110998)

U+0067

§

🔬This is a nightly-only experimental API. (ascii_char_variants #110998)

U+0068

§

🔬This is a nightly-only experimental API. (ascii_char_variants #110998)

U+0069

§

🔬This is a nightly-only experimental API. (ascii_char_variants #110998)

U+006A

§

🔬This is a nightly-only experimental API. (ascii_char_variants #110998)

U+006B

§

🔬This is a nightly-only experimental API. (ascii_char_variants #110998)

U+006C

§

🔬This is a nightly-only experimental API. (ascii_char_variants #110998)

U+006D

§

🔬This is a nightly-only experimental API. (ascii_char_variants #110998)

U+006E

§

🔬This is a nightly-only experimental API. (ascii_char_variants #110998)

U+006F

§

🔬This is a nightly-only experimental API. (ascii_char_variants #110998)

U+0070

§

🔬This is a nightly-only experimental API. (ascii_char_variants #110998)

U+0071

§

🔬This is a nightly-only experimental API. (ascii_char_variants #110998)

U+0072

§

🔬This is a nightly-only experimental API. (ascii_char_variants #110998)

U+0073

§

🔬This is a nightly-only experimental API. (ascii_char_variants #110998)

U+0074

§

🔬This is a nightly-only experimental API. (ascii_char_variants #110998)

U+0075

§

🔬This is a nightly-only experimental API. (ascii_char_variants #110998)

U+0076

§

🔬This is a nightly-only experimental API. (ascii_char_variants #110998)

U+0077

§

🔬This is a nightly-only experimental API. (ascii_char_variants #110998)

U+0078

§

🔬This is a nightly-only experimental API. (ascii_char_variants #110998)

U+0079

§

🔬This is a nightly-only experimental API. (ascii_char_variants #110998)

U+007A

§

🔬This is a nightly-only experimental API. (ascii_char_variants #110998)

U+007B

§

🔬This is a nightly-only experimental API. (ascii_char_variants #110998)

U+007C

§

🔬This is a nightly-only experimental API. (ascii_char_variants #110998)

U+007D

§

🔬This is a nightly-only experimental API. (ascii_char_variants #110998)

U+007E

§

🔬This is a nightly-only experimental API. (ascii_char_variants #110998)

U+007F

Source§

Source

🔬This is a nightly-only experimental API. (ascii_char #110998)

Creates an ascii character from the byte b, or returns None if it’s too large.

Source

🔬This is a nightly-only experimental API. (ascii_char #110998)

Creates an ASCII character from the byte b, without checking whether it’s valid.

§Safety

b must be in 0..=127, or else this is UB.

Source

🔬This is a nightly-only experimental API. (ascii_char #110998)

When passed the number 0, 1, …, 9, returns the character '0', '1', …, '9' respectively.

If d >= 10, returns None.

Source

🔬This is a nightly-only experimental API. (ascii_char #110998)

When passed the number 0, 1, …, 9, returns the character '0', '1', …, '9' respectively, without checking that it’s in-range.

§Safety

This is immediate UB if called with d > 64.

If d >= 10 and d <= 64, this is allowed to return any value or panic. Notably, it should not be expected to return hex digits, or any other reasonable extension of the decimal digits.

(This loose safety condition is intended to simplify soundness proofs when writing code using this method, since the implementation doesn’t need something really specific, not to make those other arguments do something useful. It might be tightened before stabilization.)

Source

🔬This is a nightly-only experimental API. (ascii_char #110998)

Gets this ASCII character as a byte.

Source

🔬This is a nightly-only experimental API. (ascii_char #110998)

Gets this ASCII character as a char Unicode Scalar Value.

Source

🔬This is a nightly-only experimental API. (ascii_char #110998)

Views this ASCII character as a one-code-unit UTF-8 str.

Source§

Source§

1.0.0 · Source§

Source§

Returns the default value of Null

Source§

Source§

Source§

Extends a collection with the contents of an iterator. Read more

Source§

🔬This is a nightly-only experimental API. (extend_one #72631)

Extends a collection with exactly one element.

Source§

🔬This is a nightly-only experimental API. (extend_one #72631)

Reserves capacity in a collection for the given number of additional elements. Read more

Source§

Source§

Extends a collection with the contents of an iterator. Read more

Source§

🔬This is a nightly-only experimental API. (extend_one #72631)

Extends a collection with exactly one element.

Source§

🔬This is a nightly-only experimental API. (extend_one #72631)

Reserves capacity in a collection for the given number of additional elements. Read more

Source§

Source§

Converts to this type from the input type.

Source§

Source§

Converts to this type from the input type.

Source§

Source§

Converts to this type from the input type.

Source§

Source§

Converts to this type from the input type.

Source§

Source§

Converts to this type from the input type.

Source§

Source§

Converts to this type from the input type.

Source§

Source§

Source§

Source§

Tests for self and other values to be equal, and is used by ==.

1.0.0 · Source§

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.

Source§

Source§

This method returns an ordering between self and other values if one exists. Read more

1.0.0 · Source§

Tests less than (for self and other) and is used by the < operator. Read more

1.0.0 · Source§

Tests less than or equal to (for self and other) and is used by the<= operator. Read more

1.0.0 · Source§

Tests greater than (for self and other) and is used by the >operator. Read more

1.0.0 · Source§

Tests greater than or equal to (for self and other) and is used by the >= operator. Read more

Source§

Source§

🔬This is a nightly-only experimental API. (step_trait #42168)

Returns the bounds on the number of successor steps required to get from start to endlike Iterator::size_hint(). Read more

Source§

🔬This is a nightly-only experimental API. (step_trait #42168)

Returns the value that would be obtained by taking the _successor_of self count times. Read more

Source§

🔬This is a nightly-only experimental API. (step_trait #42168)

Returns the value that would be obtained by taking the _predecessor_of self count times. Read more

Source§

🔬This is a nightly-only experimental API. (step_trait #42168)

Returns the value that would be obtained by taking the _successor_of self count times. Read more

Source§

🔬This is a nightly-only experimental API. (step_trait #42168)

Returns the value that would be obtained by taking the _predecessor_of self count times. Read more

Source§

🔬This is a nightly-only experimental API. (step_trait #42168)

Returns the value that would be obtained by taking the _successor_of self count times. Read more

Source§

🔬This is a nightly-only experimental API. (step_trait #42168)

Returns the value that would be obtained by taking the _predecessor_of self count times. Read more

Source§

Source§

Source§

Source§

§

§

§

§

§

§