pub enum LiteralKind {
    Int {
        base: Base,
        empty_int: bool,
    },
    Float {
        base: Base,
        empty_exponent: bool,
    },
    Char {
        terminated: bool,
    },
    Byte {
        terminated: bool,
    },
    Str {
        terminated: bool,
    },
    ByteStr {
        terminated: bool,
    },
    CStr {
        terminated: bool,
    },
    RawStr {
        n_hashes: Option<u8>,
    },
    RawByteStr {
        n_hashes: Option<u8>,
    },
    RawCStr {
        n_hashes: Option<u8>,
    },
}Expand description
Enum representing the literal types supported by the lexer.
Note that the suffix is not considered when deciding the LiteralKind in
this type. This means that float literals like 1f32 are classified by this
type as Int. (Compare against rustc_ast::token::LitKind and
rustc_ast::ast::LitKind).
Variants§
Int
12_u8, 0o100, 0b120i99, 1f32.
Float
12.34f32, 1e3, but not 1f32.
Char
'a', '\\', ''', ';
Byte
b'a', b'\\', b''', b';
Str
"abc", "abc
ByteStr
b"abc", b"abc
CStr
c"abc", c"abc
RawStr
r"abc", r#"abc"#, r####"ab"###"c"####, r#"a. None indicates
an invalid literal.
RawByteStr
br"abc", br#"abc"#, br####"ab"###"c"####, br#"a. None
indicates an invalid literal.
RawCStr
cr"abc", “cr#“abc”#“, cr#"a. None indicates an invalid literal.
Trait Implementations§
Source§impl Clone for LiteralKind
 
impl Clone for LiteralKind
Source§fn clone(&self) -> LiteralKind
 
fn clone(&self) -> LiteralKind
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
 
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for LiteralKind
 
impl Debug for LiteralKind
Source§impl Ord for LiteralKind
 
impl Ord for LiteralKind
Source§fn cmp(&self, other: &LiteralKind) -> Ordering
 
fn cmp(&self, other: &LiteralKind) -> Ordering
1.21.0 · Source§fn max(self, other: Self) -> Selfwhere
    Self: Sized,
 
fn max(self, other: Self) -> Selfwhere
    Self: Sized,
Source§impl PartialEq for LiteralKind
 
impl PartialEq for LiteralKind
Source§impl PartialOrd for LiteralKind
 
impl PartialOrd for LiteralKind
impl Copy for LiteralKind
impl Eq for LiteralKind
impl StructuralPartialEq for LiteralKind
Auto Trait Implementations§
impl Freeze for LiteralKind
impl RefUnwindSafe for LiteralKind
impl Send for LiteralKind
impl Sync for LiteralKind
impl Unpin for LiteralKind
impl UnwindSafe for LiteralKind
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
    T: ?Sized,
 
impl<T> BorrowMut<T> for Twhere
    T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
 
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
    T: Clone,
 
impl<T> CloneToUninit for Twhere
    T: Clone,
Layout§
Note: Most layout information is completely unstable and may even differ between compilations. The only exception is types with certain repr(...) attributes. Please see the Rust Reference's “Type Layout” chapter for details on type layout guarantees.
Size: 3 bytes
Size for each variant:
Int: 2 bytesFloat: 2 bytesChar: 1 byteByte: 1 byteStr: 1 byteByteStr: 1 byteCStr: 1 byteRawStr: 2 bytesRawByteStr: 2 bytesRawCStr: 2 bytes