pub struct Literal(/* private fields */);展开描述
字符串字面量 ("hello"), 字节串字面量 (b"hello"), C 字符串字面量 (c"hello"), 字符字面量 ('a'), 字节字符字面量 (b'a'), 带或不带后缀的整数或浮点数 (1, 1u8, 2.3, 2.3f32)。布尔字面量如 true 和 false 不属于此类,它们是 Ident。
实现§
源§impl Literal
impl Literal
1.29.0 · 源pub fn u8_suffixed(n: u8) -> Literal
pub fn u8_suffixed(n: u8) -> Literal
创建一个带指定值的新的带后缀整数字面量。
此函数将创建一个类似 1u32 的整数,其中指定的整数值是 token 的第一部分,并且整数部分也在末尾带有后缀。从负数创建的字面量在通过 TokenStream 或字符串往返时可能无法保持原样,并可能被分解为两个 token(- 和正数字面量)。
通过此方法创建的字面量默认具有 Span::call_site() span,可以使用下面的 set_span 方法进行配置。
1.29.0 · 源pub fn u16_suffixed(n: u16) -> Literal
pub fn u16_suffixed(n: u16) -> Literal
创建一个带指定值的新的带后缀整数字面量。
此函数将创建一个类似 1u32 的整数,其中指定的整数值是 token 的第一部分,并且整数部分也在末尾带有后缀。从负数创建的字面量在通过 TokenStream 或字符串往返时可能无法保持原样,并可能被分解为两个 token(- 和正数字面量)。
通过此方法创建的字面量默认具有 Span::call_site() span,可以使用下面的 set_span 方法进行配置。
1.29.0 · 源pub fn u32_suffixed(n: u32) -> Literal
pub fn u32_suffixed(n: u32) -> Literal
创建一个带指定值的新的带后缀整数字面量。
此函数将创建一个类似 1u32 的整数,其中指定的整数值是 token 的第一部分,并且整数部分也在末尾带有后缀。从负数创建的字面量在通过 TokenStream 或字符串往返时可能无法保持原样,并可能被分解为两个 token(- 和正数字面量)。
通过此方法创建的字面量默认具有 Span::call_site() span,可以使用下面的 set_span 方法进行配置。
1.29.0 · 源pub fn u64_suffixed(n: u64) -> Literal
pub fn u64_suffixed(n: u64) -> Literal
创建一个带指定值的新的带后缀整数字面量。
此函数将创建一个类似 1u32 的整数,其中指定的整数值是 token 的第一部分,并且整数部分也在末尾带有后缀。从负数创建的字面量在通过 TokenStream 或字符串往返时可能无法保持原样,并可能被分解为两个 token(- 和正数字面量)。
通过此方法创建的字面量默认具有 Span::call_site() span,可以使用下面的 set_span 方法进行配置。
1.29.0 · 源pub fn u128_suffixed(n: u128) -> Literal
pub fn u128_suffixed(n: u128) -> Literal
创建一个带指定值的新的带后缀整数字面量。
此函数将创建一个类似 1u32 的整数,其中指定的整数值是 token 的第一部分,并且整数部分也在末尾带有后缀。从负数创建的字面量在通过 TokenStream 或字符串往返时可能无法保持原样,并可能被分解为两个 token(- 和正数字面量)。
通过此方法创建的字面量默认具有 Span::call_site() span,可以使用下面的 set_span 方法进行配置。
1.29.0 · 源pub fn usize_suffixed(n: usize) -> Literal
pub fn usize_suffixed(n: usize) -> Literal
创建一个带指定值的新的带后缀整数字面量。
此函数将创建一个类似 1u32 的整数,其中指定的整数值是 token 的第一部分,并且整数部分也在末尾带有后缀。从负数创建的字面量在通过 TokenStream 或字符串往返时可能无法保持原样,并可能被分解为两个 token(- 和正数字面量)。
通过此方法创建的字面量默认具有 Span::call_site() span,可以使用下面的 set_span 方法进行配置。
1.29.0 · 源pub fn i8_suffixed(n: i8) -> Literal
pub fn i8_suffixed(n: i8) -> Literal
创建一个带指定值的新的带后缀整数字面量。
此函数将创建一个类似 1u32 的整数,其中指定的整数值是 token 的第一部分,并且整数部分也在末尾带有后缀。从负数创建的字面量在通过 TokenStream 或字符串往返时可能无法保持原样,并可能被分解为两个 token(- 和正数字面量)。
通过此方法创建的字面量默认具有 Span::call_site() span,可以使用下面的 set_span 方法进行配置。
1.29.0 · 源pub fn i16_suffixed(n: i16) -> Literal
pub fn i16_suffixed(n: i16) -> Literal
创建一个带指定值的新的带后缀整数字面量。
此函数将创建一个类似 1u32 的整数,其中指定的整数值是 token 的第一部分,并且整数部分也在末尾带有后缀。从负数创建的字面量在通过 TokenStream 或字符串往返时可能无法保持原样,并可能被分解为两个 token(- 和正数字面量)。
通过此方法创建的字面量默认具有 Span::call_site() span,可以使用下面的 set_span 方法进行配置。
1.29.0 · 源pub fn i32_suffixed(n: i32) -> Literal
pub fn i32_suffixed(n: i32) -> Literal
创建一个带指定值的新的带后缀整数字面量。
此函数将创建一个类似 1u32 的整数,其中指定的整数值是 token 的第一部分,并且整数部分也在末尾带有后缀。从负数创建的字面量在通过 TokenStream 或字符串往返时可能无法保持原样,并可能被分解为两个 token(- 和正数字面量)。
通过此方法创建的字面量默认具有 Span::call_site() span,可以使用下面的 set_span 方法进行配置。
1.29.0 · 源pub fn i64_suffixed(n: i64) -> Literal
pub fn i64_suffixed(n: i64) -> Literal
创建一个带指定值的新的带后缀整数字面量。
此函数将创建一个类似 1u32 的整数,其中指定的整数值是 token 的第一部分,并且整数部分也在末尾带有后缀。从负数创建的字面量在通过 TokenStream 或字符串往返时可能无法保持原样,并可能被分解为两个 token(- 和正数字面量)。
通过此方法创建的字面量默认具有 Span::call_site() span,可以使用下面的 set_span 方法进行配置。
1.29.0 · 源pub fn i128_suffixed(n: i128) -> Literal
pub fn i128_suffixed(n: i128) -> Literal
创建一个带指定值的新的带后缀整数字面量。
此函数将创建一个类似 1u32 的整数,其中指定的整数值是 token 的第一部分,并且整数部分也在末尾带有后缀。从负数创建的字面量在通过 TokenStream 或字符串往返时可能无法保持原样,并可能被分解为两个 token(- 和正数字面量)。
通过此方法创建的字面量默认具有 Span::call_site() span,可以使用下面的 set_span 方法进行配置。
1.29.0 · 源pub fn isize_suffixed(n: isize) -> Literal
pub fn isize_suffixed(n: isize) -> Literal
创建一个带指定值的新的带后缀整数字面量。
此函数将创建一个类似 1u32 的整数,其中指定的整数值是 token 的第一部分,并且整数部分也在末尾带有后缀。从负数创建的字面量在通过 TokenStream 或字符串往返时可能无法保持原样,并可能被分解为两个 token(- 和正数字面量)。
通过此方法创建的字面量默认具有 Span::call_site() span,可以使用下面的 set_span 方法进行配置。
1.29.0 · 源pub fn u8_unsuffixed(n: u8) -> Literal
pub fn u8_unsuffixed(n: u8) -> Literal
创建一个带指定值的新的无后缀整数字面量。
此函数将创建一个类似 1 的整数,其中指定的整数值是 token 的第一部分。此 token 没有指定后缀,这意味着诸如 Literal::i8_unsuffixed(1) 这样的调用等同于 Literal::u32_unsuffixed(1)。从负数创建的字面量在通过 TokenStream 或字符串往返时可能无法保持原样,并可能被分解为两个 token(- 和正数字面量)。
通过此方法创建的字面量默认具有 Span::call_site() span,可以使用下面的 set_span 方法进行配置。
1.29.0 · 源pub fn u16_unsuffixed(n: u16) -> Literal
pub fn u16_unsuffixed(n: u16) -> Literal
创建一个带指定值的新的无后缀整数字面量。
此函数将创建一个类似 1 的整数,其中指定的整数值是 token 的第一部分。此 token 没有指定后缀,这意味着诸如 Literal::i8_unsuffixed(1) 这样的调用等同于 Literal::u32_unsuffixed(1)。从负数创建的字面量在通过 TokenStream 或字符串往返时可能无法保持原样,并可能被分解为两个 token(- 和正数字面量)。
通过此方法创建的字面量默认具有 Span::call_site() span,可以使用下面的 set_span 方法进行配置。
1.29.0 · 源pub fn u32_unsuffixed(n: u32) -> Literal
pub fn u32_unsuffixed(n: u32) -> Literal
创建一个带指定值的新的无后缀整数字面量。
此函数将创建一个类似 1 的整数,其中指定的整数值是 token 的第一部分。此 token 没有指定后缀,这意味着诸如 Literal::i8_unsuffixed(1) 这样的调用等同于 Literal::u32_unsuffixed(1)。从负数创建的字面量在通过 TokenStream 或字符串往返时可能无法保持原样,并可能被分解为两个 token(- 和正数字面量)。
通过此方法创建的字面量默认具有 Span::call_site() span,可以使用下面的 set_span 方法进行配置。
1.29.0 · 源pub fn u64_unsuffixed(n: u64) -> Literal
pub fn u64_unsuffixed(n: u64) -> Literal
创建一个带指定值的新的无后缀整数字面量。
此函数将创建一个类似 1 的整数,其中指定的整数值是 token 的第一部分。此 token 没有指定后缀,这意味着诸如 Literal::i8_unsuffixed(1) 这样的调用等同于 Literal::u32_unsuffixed(1)。从负数创建的字面量在通过 TokenStream 或字符串往返时可能无法保持原样,并可能被分解为两个 token(- 和正数字面量)。
通过此方法创建的字面量默认具有 Span::call_site() span,可以使用下面的 set_span 方法进行配置。
1.29.0 · 源pub fn u128_unsuffixed(n: u128) -> Literal
pub fn u128_unsuffixed(n: u128) -> Literal
创建一个带指定值的新的无后缀整数字面量。
此函数将创建一个类似 1 的整数,其中指定的整数值是 token 的第一部分。此 token 没有指定后缀,这意味着诸如 Literal::i8_unsuffixed(1) 这样的调用等同于 Literal::u32_unsuffixed(1)。从负数创建的字面量在通过 TokenStream 或字符串往返时可能无法保持原样,并可能被分解为两个 token(- 和正数字面量)。
通过此方法创建的字面量默认具有 Span::call_site() span,可以使用下面的 set_span 方法进行配置。
1.29.0 · 源pub fn usize_unsuffixed(n: usize) -> Literal
pub fn usize_unsuffixed(n: usize) -> Literal
创建一个带指定值的新的无后缀整数字面量。
此函数将创建一个类似 1 的整数,其中指定的整数值是 token 的第一部分。此 token 没有指定后缀,这意味着诸如 Literal::i8_unsuffixed(1) 这样的调用等同于 Literal::u32_unsuffixed(1)。从负数创建的字面量在通过 TokenStream 或字符串往返时可能无法保持原样,并可能被分解为两个 token(- 和正数字面量)。
通过此方法创建的字面量默认具有 Span::call_site() span,可以使用下面的 set_span 方法进行配置。
1.29.0 · 源pub fn i8_unsuffixed(n: i8) -> Literal
pub fn i8_unsuffixed(n: i8) -> Literal
创建一个带指定值的新的无后缀整数字面量。
此函数将创建一个类似 1 的整数,其中指定的整数值是 token 的第一部分。此 token 没有指定后缀,这意味着诸如 Literal::i8_unsuffixed(1) 这样的调用等同于 Literal::u32_unsuffixed(1)。从负数创建的字面量在通过 TokenStream 或字符串往返时可能无法保持原样,并可能被分解为两个 token(- 和正数字面量)。
通过此方法创建的字面量默认具有 Span::call_site() span,可以使用下面的 set_span 方法进行配置。
1.29.0 · 源pub fn i16_unsuffixed(n: i16) -> Literal
pub fn i16_unsuffixed(n: i16) -> Literal
创建一个带指定值的新的无后缀整数字面量。
此函数将创建一个类似 1 的整数,其中指定的整数值是 token 的第一部分。此 token 没有指定后缀,这意味着诸如 Literal::i8_unsuffixed(1) 这样的调用等同于 Literal::u32_unsuffixed(1)。从负数创建的字面量在通过 TokenStream 或字符串往返时可能无法保持原样,并可能被分解为两个 token(- 和正数字面量)。
通过此方法创建的字面量默认具有 Span::call_site() span,可以使用下面的 set_span 方法进行配置。
1.29.0 · 源pub fn i32_unsuffixed(n: i32) -> Literal
pub fn i32_unsuffixed(n: i32) -> Literal
创建一个带指定值的新的无后缀整数字面量。
此函数将创建一个类似 1 的整数,其中指定的整数值是 token 的第一部分。此 token 没有指定后缀,这意味着诸如 Literal::i8_unsuffixed(1) 这样的调用等同于 Literal::u32_unsuffixed(1)。从负数创建的字面量在通过 TokenStream 或字符串往返时可能无法保持原样,并可能被分解为两个 token(- 和正数字面量)。
通过此方法创建的字面量默认具有 Span::call_site() span,可以使用下面的 set_span 方法进行配置。
1.29.0 · 源pub fn i64_unsuffixed(n: i64) -> Literal
pub fn i64_unsuffixed(n: i64) -> Literal
创建一个带指定值的新的无后缀整数字面量。
此函数将创建一个类似 1 的整数,其中指定的整数值是 token 的第一部分。此 token 没有指定后缀,这意味着诸如 Literal::i8_unsuffixed(1) 这样的调用等同于 Literal::u32_unsuffixed(1)。从负数创建的字面量在通过 TokenStream 或字符串往返时可能无法保持原样,并可能被分解为两个 token(- 和正数字面量)。
通过此方法创建的字面量默认具有 Span::call_site() span,可以使用下面的 set_span 方法进行配置。
1.29.0 · 源pub fn i128_unsuffixed(n: i128) -> Literal
pub fn i128_unsuffixed(n: i128) -> Literal
创建一个带指定值的新的无后缀整数字面量。
此函数将创建一个类似 1 的整数,其中指定的整数值是 token 的第一部分。此 token 没有指定后缀,这意味着诸如 Literal::i8_unsuffixed(1) 这样的调用等同于 Literal::u32_unsuffixed(1)。从负数创建的字面量在通过 TokenStream 或字符串往返时可能无法保持原样,并可能被分解为两个 token(- 和正数字面量)。
通过此方法创建的字面量默认具有 Span::call_site() span,可以使用下面的 set_span 方法进行配置。
1.29.0 · 源pub fn isize_unsuffixed(n: isize) -> Literal
pub fn isize_unsuffixed(n: isize) -> Literal
创建一个带指定值的新的无后缀整数字面量。
此函数将创建一个类似 1 的整数,其中指定的整数值是 token 的第一部分。此 token 没有指定后缀,这意味着诸如 Literal::i8_unsuffixed(1) 这样的调用等同于 Literal::u32_unsuffixed(1)。从负数创建的字面量在通过 TokenStream 或字符串往返时可能无法保持原样,并可能被分解为两个 token(- 和正数字面量)。
通过此方法创建的字面量默认具有 Span::call_site() span,可以使用下面的 set_span 方法进行配置。
1.29.0 · 源pub fn f32_unsuffixed(n: f32) -> Literal
pub fn f32_unsuffixed(n: f32) -> Literal
创建一个新的无后缀浮点数字面量。
此构造函数类似于 `Literal::i8_unsuffixed` 等函数,将浮点数值直接输出到 token 中,但不使用后缀,因此在编译器中稍后可能被推断为 f64。从负数创建的字面量在通过 TokenStream 或字符串往返时可能无法保持原样,并可能被分解为两个 token(- 和正数字面量)。
§可能 panic
此函数要求指定的浮点数为有限值,例如,如果它是无穷大或 NaN,此函数将 panic。
1.29.0 · 源pub fn f32_suffixed(n: f32) -> Literal
pub fn f32_suffixed(n: f32) -> Literal
创建一个新的带后缀浮点数字面量。
此构造函数将创建一个类似 1.0f32 的字面量,其中指定的值是 token 的前一部分,f32 是 token 的后缀。此 token 在编译器中总是会被推断为 f32。从负数创建的字面量在通过 TokenStream 或字符串往返时可能无法保持原样,并可能被分解为两个 token(- 和正数字面量)。
§可能 panic
此函数要求指定的浮点数为有限值,例如,如果它是无穷大或 NaN,此函数将 panic。
1.29.0 · 源pub fn f64_unsuffixed(n: f64) -> Literal
pub fn f64_unsuffixed(n: f64) -> Literal
创建一个新的无后缀浮点数字面量。
此构造函数类似于 `Literal::i8_unsuffixed` 等函数,将浮点数值直接输出到 token 中,但不使用后缀,因此在编译器中稍后可能被推断为 f64。从负数创建的字面量在通过 TokenStream 或字符串往返时可能无法保持原样,并可能被分解为两个 token(- 和正数字面量)。
§可能 panic
此函数要求指定的浮点数为有限值,例如,如果它是无穷大或 NaN,此函数将 panic。
1.29.0 · 源pub fn f64_suffixed(n: f64) -> Literal
pub fn f64_suffixed(n: f64) -> Literal
创建一个新的带后缀浮点数字面量。
此构造函数将创建一个类似 1.0f64 的字面量,其中指定的值是 token 的前一部分,f64 是 token 的后缀。此 token 在编译器中总是会被推断为 f64。从负数创建的字面量在通过 TokenStream 或字符串往返时可能无法保持原样,并可能被分解为两个 token(- 和正数字面量)。
§可能 panic
此函数要求指定的浮点数为有限值,例如,如果它是无穷大或 NaN,此函数将 panic。
1.79.0 · 源pub fn byte_character(byte: u8) -> Literal
pub fn byte_character(byte: u8) -> Literal
字节字符字面量。
1.29.0 · 源pub fn byte_string(bytes: &[u8]) -> Literal
pub fn byte_string(bytes: &[u8]) -> Literal
字节串字面量。
Trait 实现§
1.54.0 · 源§impl FromStr for Literal
从其字符串表示中解析单个字面量。
impl FromStr for Literal
从其字符串表示中解析单个字面量。
为了成功解析,输入字符串除了字面量 token 之外不能包含任何其他内容。具体来说,除了字面量之外,它不能包含空白或注释。
生成的字面量 token 将具有 Span::call_site() span。
注意:某些错误可能会导致 panic 而不是返回 LexError。我们保留稍后将这些错误更改为 LexError 的权利。
源§impl ToTokens for Literal
impl ToTokens for Literal
源§fn to_tokens(&self, tokens: &mut TokenStream)
fn to_tokens(&self, tokens: &mut TokenStream)
proc_macro_totokens #130977)源§fn to_token_stream(&self) -> TokenStream
fn to_token_stream(&self) -> TokenStream
proc_macro_totokens #130977)源§fn into_token_stream(self) -> TokenStreamwhere Self: Sized,
fn into_token_stream(self) -> TokenStreamwhere Self: Sized,
proc_macro_totokens #130977)