Struct proc_macro::Literal

1.29.0 · source ·
pub struct Literal(_);
Expand description

字符串字面量 ("hello"),字节字符串 (b"hello"),字符 ('a'),字节字符 (b'a'),带或不带后缀 (‘1’,1u82.32.3f32) 的整数或浮点数。

truefalse 之类的布尔字面量在这里不属于它们,它们是 Ident

Implementations§

source§

impl Literal

source

pub fn u8_suffixed(n: u8) -> Literal

用指定的值创建一个新的后缀整数字面量。

此函数将创建一个类似于 1u32 的整数,其中指定的整数值是 token 的第一部分,并且整数也以结尾加后缀。 从负数创建的字面量可能无法通过 TokenStream 或字符串进行往返,并且可能会分解为两个 tokens (- 和正字面量)。

通过此方法创建的字面量默认情况下具有 Span::call_site() 跨度,可以使用以下 set_span 方法进行配置。

source

pub fn u16_suffixed(n: u16) -> Literal

用指定的值创建一个新的后缀整数字面量。

此函数将创建一个类似于 1u32 的整数,其中指定的整数值是 token 的第一部分,并且整数也以结尾加后缀。 从负数创建的字面量可能无法通过 TokenStream 或字符串进行往返,并且可能会分解为两个 tokens (- 和正字面量)。

通过此方法创建的字面量默认情况下具有 Span::call_site() 跨度,可以使用以下 set_span 方法进行配置。

source

pub fn u32_suffixed(n: u32) -> Literal

用指定的值创建一个新的后缀整数字面量。

此函数将创建一个类似于 1u32 的整数,其中指定的整数值是 token 的第一部分,并且整数也以结尾加后缀。 从负数创建的字面量可能无法通过 TokenStream 或字符串进行往返,并且可能会分解为两个 tokens (- 和正字面量)。

通过此方法创建的字面量默认情况下具有 Span::call_site() 跨度,可以使用以下 set_span 方法进行配置。

source

pub fn u64_suffixed(n: u64) -> Literal

用指定的值创建一个新的后缀整数字面量。

此函数将创建一个类似于 1u32 的整数,其中指定的整数值是 token 的第一部分,并且整数也以结尾加后缀。 从负数创建的字面量可能无法通过 TokenStream 或字符串进行往返,并且可能会分解为两个 tokens (- 和正字面量)。

通过此方法创建的字面量默认情况下具有 Span::call_site() 跨度,可以使用以下 set_span 方法进行配置。

source

pub fn u128_suffixed(n: u128) -> Literal

用指定的值创建一个新的后缀整数字面量。

此函数将创建一个类似于 1u32 的整数,其中指定的整数值是 token 的第一部分,并且整数也以结尾加后缀。 从负数创建的字面量可能无法通过 TokenStream 或字符串进行往返,并且可能会分解为两个 tokens (- 和正字面量)。

通过此方法创建的字面量默认情况下具有 Span::call_site() 跨度,可以使用以下 set_span 方法进行配置。

source

pub fn usize_suffixed(n: usize) -> Literal

用指定的值创建一个新的后缀整数字面量。

此函数将创建一个类似于 1u32 的整数,其中指定的整数值是 token 的第一部分,并且整数也以结尾加后缀。 从负数创建的字面量可能无法通过 TokenStream 或字符串进行往返,并且可能会分解为两个 tokens (- 和正字面量)。

通过此方法创建的字面量默认情况下具有 Span::call_site() 跨度,可以使用以下 set_span 方法进行配置。

source

pub fn i8_suffixed(n: i8) -> Literal

用指定的值创建一个新的后缀整数字面量。

此函数将创建一个类似于 1u32 的整数,其中指定的整数值是 token 的第一部分,并且整数也以结尾加后缀。 从负数创建的字面量可能无法通过 TokenStream 或字符串进行往返,并且可能会分解为两个 tokens (- 和正字面量)。

通过此方法创建的字面量默认情况下具有 Span::call_site() 跨度,可以使用以下 set_span 方法进行配置。

source

pub fn i16_suffixed(n: i16) -> Literal

用指定的值创建一个新的后缀整数字面量。

此函数将创建一个类似于 1u32 的整数,其中指定的整数值是 token 的第一部分,并且整数也以结尾加后缀。 从负数创建的字面量可能无法通过 TokenStream 或字符串进行往返,并且可能会分解为两个 tokens (- 和正字面量)。

通过此方法创建的字面量默认情况下具有 Span::call_site() 跨度,可以使用以下 set_span 方法进行配置。

source

pub fn i32_suffixed(n: i32) -> Literal

用指定的值创建一个新的后缀整数字面量。

此函数将创建一个类似于 1u32 的整数,其中指定的整数值是 token 的第一部分,并且整数也以结尾加后缀。 从负数创建的字面量可能无法通过 TokenStream 或字符串进行往返,并且可能会分解为两个 tokens (- 和正字面量)。

通过此方法创建的字面量默认情况下具有 Span::call_site() 跨度,可以使用以下 set_span 方法进行配置。

source

pub fn i64_suffixed(n: i64) -> Literal

用指定的值创建一个新的后缀整数字面量。

此函数将创建一个类似于 1u32 的整数,其中指定的整数值是 token 的第一部分,并且整数也以结尾加后缀。 从负数创建的字面量可能无法通过 TokenStream 或字符串进行往返,并且可能会分解为两个 tokens (- 和正字面量)。

通过此方法创建的字面量默认情况下具有 Span::call_site() 跨度,可以使用以下 set_span 方法进行配置。

source

pub fn i128_suffixed(n: i128) -> Literal

用指定的值创建一个新的后缀整数字面量。

此函数将创建一个类似于 1u32 的整数,其中指定的整数值是 token 的第一部分,并且整数也以结尾加后缀。 从负数创建的字面量可能无法通过 TokenStream 或字符串进行往返,并且可能会分解为两个 tokens (- 和正字面量)。

通过此方法创建的字面量默认情况下具有 Span::call_site() 跨度,可以使用以下 set_span 方法进行配置。

source

pub fn isize_suffixed(n: isize) -> Literal

用指定的值创建一个新的后缀整数字面量。

此函数将创建一个类似于 1u32 的整数,其中指定的整数值是 token 的第一部分,并且整数也以结尾加后缀。 从负数创建的字面量可能无法通过 TokenStream 或字符串进行往返,并且可能会分解为两个 tokens (- 和正字面量)。

通过此方法创建的字面量默认情况下具有 Span::call_site() 跨度,可以使用以下 set_span 方法进行配置。

source

pub fn u8_unsuffixed(n: u8) -> Literal

用指定的值创建一个新的无后缀的整数字面量。

此函数将创建一个类似于 1 的整数,其中指定的整数值是 token 的第一部分。 在此 token 上未指定后缀,这意味着像 Literal::i8_unsuffixed(1) 这样的调用等效于 Literal::u32_unsuffixed(1)。 由负数创建的字面量可能无法通过 TokenStream 或字符串进行往返,并且可能会分解为两个 tokens (- 和正字面量)。

通过此方法创建的字面量默认情况下具有 Span::call_site() 跨度,可以使用以下 set_span 方法进行配置。

source

pub fn u16_unsuffixed(n: u16) -> Literal

用指定的值创建一个新的无后缀的整数字面量。

此函数将创建一个类似于 1 的整数,其中指定的整数值是 token 的第一部分。 在此 token 上未指定后缀,这意味着像 Literal::i8_unsuffixed(1) 这样的调用等效于 Literal::u32_unsuffixed(1)。 由负数创建的字面量可能无法通过 TokenStream 或字符串进行往返,并且可能会分解为两个 tokens (- 和正字面量)。

通过此方法创建的字面量默认情况下具有 Span::call_site() 跨度,可以使用以下 set_span 方法进行配置。

source

pub fn u32_unsuffixed(n: u32) -> Literal

用指定的值创建一个新的无后缀的整数字面量。

此函数将创建一个类似于 1 的整数,其中指定的整数值是 token 的第一部分。 在此 token 上未指定后缀,这意味着像 Literal::i8_unsuffixed(1) 这样的调用等效于 Literal::u32_unsuffixed(1)。 由负数创建的字面量可能无法通过 TokenStream 或字符串进行往返,并且可能会分解为两个 tokens (- 和正字面量)。

通过此方法创建的字面量默认情况下具有 Span::call_site() 跨度,可以使用以下 set_span 方法进行配置。

source

pub fn u64_unsuffixed(n: u64) -> Literal

用指定的值创建一个新的无后缀的整数字面量。

此函数将创建一个类似于 1 的整数,其中指定的整数值是 token 的第一部分。 在此 token 上未指定后缀,这意味着像 Literal::i8_unsuffixed(1) 这样的调用等效于 Literal::u32_unsuffixed(1)。 由负数创建的字面量可能无法通过 TokenStream 或字符串进行往返,并且可能会分解为两个 tokens (- 和正字面量)。

通过此方法创建的字面量默认情况下具有 Span::call_site() 跨度,可以使用以下 set_span 方法进行配置。

source

pub fn u128_unsuffixed(n: u128) -> Literal

用指定的值创建一个新的无后缀的整数字面量。

此函数将创建一个类似于 1 的整数,其中指定的整数值是 token 的第一部分。 在此 token 上未指定后缀,这意味着像 Literal::i8_unsuffixed(1) 这样的调用等效于 Literal::u32_unsuffixed(1)。 由负数创建的字面量可能无法通过 TokenStream 或字符串进行往返,并且可能会分解为两个 tokens (- 和正字面量)。

通过此方法创建的字面量默认情况下具有 Span::call_site() 跨度,可以使用以下 set_span 方法进行配置。

source

pub fn usize_unsuffixed(n: usize) -> Literal

用指定的值创建一个新的无后缀的整数字面量。

此函数将创建一个类似于 1 的整数,其中指定的整数值是 token 的第一部分。 在此 token 上未指定后缀,这意味着像 Literal::i8_unsuffixed(1) 这样的调用等效于 Literal::u32_unsuffixed(1)。 由负数创建的字面量可能无法通过 TokenStream 或字符串进行往返,并且可能会分解为两个 tokens (- 和正字面量)。

通过此方法创建的字面量默认情况下具有 Span::call_site() 跨度,可以使用以下 set_span 方法进行配置。

source

pub fn i8_unsuffixed(n: i8) -> Literal

用指定的值创建一个新的无后缀的整数字面量。

此函数将创建一个类似于 1 的整数,其中指定的整数值是 token 的第一部分。 在此 token 上未指定后缀,这意味着像 Literal::i8_unsuffixed(1) 这样的调用等效于 Literal::u32_unsuffixed(1)。 由负数创建的字面量可能无法通过 TokenStream 或字符串进行往返,并且可能会分解为两个 tokens (- 和正字面量)。

通过此方法创建的字面量默认情况下具有 Span::call_site() 跨度,可以使用以下 set_span 方法进行配置。

source

pub fn i16_unsuffixed(n: i16) -> Literal

用指定的值创建一个新的无后缀的整数字面量。

此函数将创建一个类似于 1 的整数,其中指定的整数值是 token 的第一部分。 在此 token 上未指定后缀,这意味着像 Literal::i8_unsuffixed(1) 这样的调用等效于 Literal::u32_unsuffixed(1)。 由负数创建的字面量可能无法通过 TokenStream 或字符串进行往返,并且可能会分解为两个 tokens (- 和正字面量)。

通过此方法创建的字面量默认情况下具有 Span::call_site() 跨度,可以使用以下 set_span 方法进行配置。

source

pub fn i32_unsuffixed(n: i32) -> Literal

用指定的值创建一个新的无后缀的整数字面量。

此函数将创建一个类似于 1 的整数,其中指定的整数值是 token 的第一部分。 在此 token 上未指定后缀,这意味着像 Literal::i8_unsuffixed(1) 这样的调用等效于 Literal::u32_unsuffixed(1)。 由负数创建的字面量可能无法通过 TokenStream 或字符串进行往返,并且可能会分解为两个 tokens (- 和正字面量)。

通过此方法创建的字面量默认情况下具有 Span::call_site() 跨度,可以使用以下 set_span 方法进行配置。

source

pub fn i64_unsuffixed(n: i64) -> Literal

用指定的值创建一个新的无后缀的整数字面量。

此函数将创建一个类似于 1 的整数,其中指定的整数值是 token 的第一部分。 在此 token 上未指定后缀,这意味着像 Literal::i8_unsuffixed(1) 这样的调用等效于 Literal::u32_unsuffixed(1)。 由负数创建的字面量可能无法通过 TokenStream 或字符串进行往返,并且可能会分解为两个 tokens (- 和正字面量)。

通过此方法创建的字面量默认情况下具有 Span::call_site() 跨度,可以使用以下 set_span 方法进行配置。

source

pub fn i128_unsuffixed(n: i128) -> Literal

用指定的值创建一个新的无后缀的整数字面量。

此函数将创建一个类似于 1 的整数,其中指定的整数值是 token 的第一部分。 在此 token 上未指定后缀,这意味着像 Literal::i8_unsuffixed(1) 这样的调用等效于 Literal::u32_unsuffixed(1)。 由负数创建的字面量可能无法通过 TokenStream 或字符串进行往返,并且可能会分解为两个 tokens (- 和正字面量)。

通过此方法创建的字面量默认情况下具有 Span::call_site() 跨度,可以使用以下 set_span 方法进行配置。

source

pub fn isize_unsuffixed(n: isize) -> Literal

用指定的值创建一个新的无后缀的整数字面量。

此函数将创建一个类似于 1 的整数,其中指定的整数值是 token 的第一部分。 在此 token 上未指定后缀,这意味着像 Literal::i8_unsuffixed(1) 这样的调用等效于 Literal::u32_unsuffixed(1)。 由负数创建的字面量可能无法通过 TokenStream 或字符串进行往返,并且可能会分解为两个 tokens (- 和正字面量)。

通过此方法创建的字面量默认情况下具有 Span::call_site() 跨度,可以使用以下 set_span 方法进行配置。

source

pub fn f32_unsuffixed(n: f32) -> Literal

创建一个新的不带后缀的浮点字面量。

此构造函数类似于 Literal::i8_unsuffixed,后者将 float 的值直接发出到 token 中,但不使用后缀,因此可以在以后的编译器中推断出它是 f64

由负数创建的字面量可能无法通过 TokenStream 或字符串进行往返,并且可能会分解为两个 tokens (- 和正字面量)。

Panics

此函数要求指定的浮点数是有限的,例如,如果它是无穷大或 NaN,则此函数将为 panic。

source

pub fn f32_suffixed(n: f32) -> Literal

创建一个新的后缀浮点字面量。

该构造函数将创建一个像 1.0f32 这样的字面量,其中指定的值是 token 的前一部分,而 f32 是 token 的后缀。 token 在编译器中将始终被推断为 f32。 由负数创建的字面量可能无法通过 TokenStream 或字符串进行往返,并且可能会分解为两个 tokens (- 和正字面量)。

Panics

此函数要求指定的浮点数是有限的,例如,如果它是无穷大或 NaN,则此函数将为 panic。

source

pub fn f64_unsuffixed(n: f64) -> Literal

创建一个新的不带后缀的浮点字面量。

此构造函数类似于 Literal::i8_unsuffixed,后者将 float 的值直接发出到 token 中,但不使用后缀,因此可以在以后的编译器中推断出它是 f64

由负数创建的字面量可能无法通过 TokenStream 或字符串进行往返,并且可能会分解为两个 tokens (- 和正字面量)。

Panics

此函数要求指定的浮点数是有限的,例如,如果它是无穷大或 NaN,则此函数将为 panic。

source

pub fn f64_suffixed(n: f64) -> Literal

创建一个新的后缀浮点字面量。

该构造函数将创建一个像 1.0f64 这样的字面量,其中指定的值是 token 的前一部分,而 f64 是 token 的后缀。 token 在编译器中将始终被推断为 f64。 由负数创建的字面量可能无法通过 TokenStream 或字符串进行往返,并且可能会分解为两个 tokens (- 和正字面量)。

Panics

此函数要求指定的浮点数是有限的,例如,如果它是无穷大或 NaN,则此函数将为 panic。

source

pub fn string(string: &str) -> Literal

字符串字面量。

source

pub fn character(ch: char) -> Literal

字符字面量。

source

pub fn byte_string(bytes: &[u8]) -> Literal

字节字符串字面量。

source

pub fn span(&self) -> Span

返回包含此字面量的范围。

source

pub fn set_span(&mut self, span: Span)

配置与此字面量关联的范围。

source

pub fn subspan<R: RangeBounds<usize>>(&self, range: R) -> Option<Span>

🔬This is a nightly-only experimental API. (proc_macro_span #54725)

返回 Span,它是 self.span() 的子集,仅包含范围 range 中的源字节。 如果要修剪的跨度超出 self 的边界,则返回 None

Trait Implementations§

source§

impl Clone for Literal

source§

fn clone(&self) -> Literal

返回值的副本。 Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

source 执行复制分配。 Read more
source§

impl Debug for Literal

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

使用给定的格式化程序格式化该值。 Read more
source§

impl Display for Literal

将字面量打印为一个字符串,该字符串应可以无损地转换回相同的字面量 (但浮点型字面量的可能取整除外)。

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

使用给定的格式化程序格式化该值。 Read more
source§

impl From<Literal> for TokenTree

source§

fn from(g: Literal) -> TokenTree

从输入类型转换为此类型。
1.54.0 · source§

impl FromStr for Literal

从字符串化表示中解析单个字面量。

为了成功解析,输入字符串不能包含除字面量 token 之外的任何内容。

具体来说,它不能包含除字面量之外的空格或注释。

生成的字面量 token 将具有 Span::call_site() span。

NOTE: 某些错误可能导致 panics 而不是返回 LexError。 我们保留稍后将这些错误更改为 LexError 的权利。

§

type Err = LexError

可以从解析中返回的相关错误。
source§

fn from_str(src: &str) -> Result<Self, LexError>

解析字符串 s 以返回此类型的值。 Read more
source§

impl ToString for Literal

source§

fn to_string(&self) -> String

将给定值转换为 StringRead more

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for Twhere T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

获取 selfTypeIdRead more
source§

impl<T> Borrow<T> for Twhere T: ?Sized,

source§

fn borrow(&self) -> &T

从拥有的值中一成不变地借用。 Read more
source§

impl<T> BorrowMut<T> for Twhere T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

从拥有的值中借用。 Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

返回未更改的参数。

source§

impl<T, U> Into<U> for Twhere U: From<T>,

source§

fn into(self) -> U

调用 U::from(self)

也就是说,这种转换是 From<T> for U 实现选择执行的任何操作。

source§

impl<T> ToOwned for Twhere T: Clone,

§

type Owned = T

获得所有权后的结果类型。
source§

fn to_owned(&self) -> T

从借用的数据创建拥有的数据,通常是通过克隆。 Read more
source§

fn clone_into(&self, target: &mut T)

使用借来的数据来替换拥有的数据,通常是通过克隆。 Read more
source§

impl<T> ToString for Twhere T: Display + ?Sized,

source§

default fn to_string(&self) -> String

将给定值转换为 StringRead more
source§

impl<T, U> TryFrom<U> for Twhere U: Into<T>,

§

type Error = Infallible

发生转换错误时返回的类型。
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

执行转换。
source§

impl<T, U> TryInto<U> for Twhere U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

发生转换错误时返回的类型。
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

执行转换。