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
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§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,
source§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
clone_to_uninit
)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