枚举 TokenTree

1.29.0 · 源码
pub enum TokenTree {
    Group(Group),
    Ident(Ident),
    Punct(Punct),
    Literal(Literal),
}
展开描述

单个 token 或用分隔符分隔的 token tree 序列(例如,[1, (), ..])。

变体§

§1.29.0

Group(Group)

由括号分隔符包围的 token stream。

§1.29.0

Ident(Ident)

一个标识符。

§1.29.0

Punct(Punct)

单个标点符号字符(+, ,, $ 等)。

§1.29.0

Literal(Literal)

一个字面量字符('a')、字符串("hello")、数字(2.3)等。

实现§

源码§

impl TokenTree

1.29.0 · 源码

pub fn span(&self) -> Span

返回此 token tree 的 span,委托给包含的 token 或由分隔符分隔的 stream 的 span 方法。

1.29.0 · 源码

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

配置仅此 token 的 span。

请注意,如果此 token 是 Group,则此方法不会配置每个内部 token 的 span,它只会委托给每个变体的 set_span 方法。

Trait 实现§

1.29.0 · 源码§

impl Clone for TokenTree

源码§

fn clone(&self) -> TokenTree

返回值的副本。 阅读更多
1.0.0 · 源码§

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

source 执行复制赋值。 阅读更多
1.29.0 · 源码§

impl Debug for TokenTree

以方便调试的形式打印 token tree。

源码§

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

使用给定的格式化程序格式化值。 阅读更多
1.29.0 · 源码§

impl Display for TokenTree

将 token tree 打印为字符串,该字符串应能无损地转换回相同的 token tree(跨度除外),但可能不包括带有 Delimiter::None 分隔符的 TokenTree::Group 和负数字面量。

注意:输出的确切形式可能会发生变化,例如 token 之间使用的空格可能会发生变化。因此,您不应对输出字符串(由 to_string 生成)进行任何简单的子字符串匹配来实现 proc macro,因为如果发生此类变化,该匹配可能会停止工作。相反,您应该在 TokenTree 级别进行操作,例如匹配 TokenTree::IdentTokenTree::PunctTokenTree::Literal

源码§

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

使用给定的格式化程序格式化值。 阅读更多
1.30.0 · 源码§

impl Extend<TokenTree> for TokenStream

源码§

fn extend<I: IntoIterator<Item = TokenTree>>(&mut self, trees: I)

使用迭代器的内容扩展集合。 阅读更多
源码§

fn extend_one(&mut self, item: A)

🔬这是一个仅限 nightly 的实验性 API。(extend_one #72631)
用恰好一个元素扩展集合。
源码§

fn extend_reserve(&mut self, additional: usize)

🔬这是一个仅限 nightly 的实验性 API。(extend_one #72631)
为给定数量的附加元素在集合中预留容量。 阅读更多
1.29.0 · 源码§

impl From<Group> for TokenTree

源码§

fn from(g: Group) -> TokenTree

从输入类型转换为此类型。
1.29.0 · 源码§

impl From<Ident> for TokenTree

源码§

fn from(g: Ident) -> TokenTree

从输入类型转换为此类型。
1.29.0 · 源码§

impl From<Literal> for TokenTree

源码§

fn from(g: Literal) -> TokenTree

从输入类型转换为此类型。
1.29.0 · 源码§

impl From<Punct> for TokenTree

源码§

fn from(g: Punct) -> TokenTree

从输入类型转换为此类型。
1.29.0 · 源码§

impl From<TokenTree> for TokenStream

创建一个包含单个 token tree 的 token stream。

源码§

fn from(tree: TokenTree) -> TokenStream

从输入类型转换为此类型。
1.29.0 · 源码§

impl FromIterator<TokenTree> for TokenStream

将多个 token tree 收集到单个 stream 中。

源码§

fn from_iter<I: IntoIterator<Item = TokenTree>>(trees: I) -> Self

从迭代器创建值。 阅读更多
源码§

impl ToTokens for TokenTree

源码§

fn to_tokens(&self, tokens: &mut TokenStream)

🔬这是一个仅限 nightly 的实验性 API。(proc_macro_totokens #130977)
self 写入给定的 TokenStream阅读更多
源码§

fn into_token_stream(self) -> TokenStream

🔬这是一个仅限 nightly 的实验性 API。(proc_macro_totokens #130977)
self 直接转换为 TokenStream 对象。 阅读更多
源码§

fn to_token_stream(&self) -> TokenStream

🔬这是一个仅限 nightly 的实验性 API。(proc_macro_totokens #130977)
self 直接转换为 TokenStream 对象。 阅读更多
1.29.0 · 源码§

impl !Send for TokenTree

1.29.0 · 源码§

impl !Sync for TokenTree

自动 Trait 实现§

通用实现§

源码§

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

源码§

fn type_id(&self) -> TypeId

获取 selfTypeId阅读更多
源码§

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

源码§

fn borrow(&self) -> &T

从拥有的值不可变地借用。 阅读更多
源码§

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

源码§

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

从拥有的值可变地借用。 阅读更多
源码§

impl<T> CloneToUninit for T
where T: Clone,

源码§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬这是一个仅限 nightly 的实验性 API。(clone_to_uninit #126799)
self 复制赋值给 dest阅读更多
源码§

impl<T> From<T> for T

源码§

fn from(t: T) -> T

返回未更改的参数。

源码§

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

源码§

fn into(self) -> U

调用 U::from(self)

也就是说,此转换取决于 From<T> for U 的实现选择做什么。

源码§

impl<T> ToOwned for T
where T: Clone,

源码§

type Owned = T

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

fn to_owned(&self) -> T

从借用的数据创建拥有的数据,通常通过克隆。 阅读更多
源码§

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

使用借用的数据替换拥有的数据,通常通过克隆。 阅读更多
源码§

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

源码§

fn to_string(&self) -> String

将给定值转换为 String阅读更多
源码§

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

源码§

type Error = Infallible

转换错误时返回的类型。
源码§

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

执行转换。
源码§

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

源码§

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

转换错误时返回的类型。
源码§

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

执行转换。