Struct proc_macro::TokenStream
1.15.0 · source · pub struct TokenStream(_);
Expand description
此 crate 提供的主要类型,表示 tokens 的抽象流,或更具体地说,表示 token 树的序列。 该类型提供用于迭代这些 token 树的接口,并且相反,将大量 token 树收集到一个流中。
这是 #[proc_macro]
,#[proc_macro_attribute]
和 #[proc_macro_derive]
定义的输入和输出。
Implementations§
source§impl TokenStream
impl TokenStream
1.29.0 · sourcepub fn new() -> TokenStream
pub fn new() -> TokenStream
返回不包含 token 树的空 TokenStream
。
sourcepub fn expand_expr(&self) -> Result<TokenStream, ExpandError>
🔬This is a nightly-only experimental API. (proc_macro_expand
#90765)
pub fn expand_expr(&self) -> Result<TokenStream, ExpandError>
proc_macro_expand
#90765)将此 TokenStream
解析为表达式并尝试扩展其中的任何宏。返回扩展的 TokenStream
。
目前只有扩展到字面量的表达式会成功,尽管这在 future 中可能会有所放松。
NOTE: 在错误情况下,expand_expr
可能会保留未扩展的宏、报告错误、编译失败或者返回 Err(..)
。
任何错误条件的具体行为,以及哪些条件被视为错误,是未指定的,可能会在 future 中发生变化。
Trait Implementations§
source§impl Clone for TokenStream
impl Clone for TokenStream
source§fn clone(&self) -> TokenStream
fn clone(&self) -> TokenStream
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
执行复制分配。 Read moresource§impl Debug for TokenStream
impl Debug for TokenStream
以方便调试的形式打印 token。
source§impl Display for TokenStream
impl Display for TokenStream
将 token 流打印为应该无损转换为相同 token 流 (模数跨度) 的字符串,但可能带有 Delimiter::None
分隔符和负数字字面量的 TokenTree::Group
除外。
1.30.0 · source§impl Extend<TokenStream> for TokenStream
impl Extend<TokenStream> for TokenStream
source§fn extend<I: IntoIterator<Item = TokenStream>>(&mut self, streams: I)
fn extend<I: IntoIterator<Item = TokenStream>>(&mut self, streams: I)
source§fn extend_one(&mut self, item: A)
fn extend_one(&mut self, item: A)
extend_one
#72631)1.30.0 · source§impl Extend<TokenTree> for TokenStream
impl Extend<TokenTree> for TokenStream
source§fn extend_one(&mut self, item: A)
fn extend_one(&mut self, item: A)
extend_one
#72631)1.29.0 · source§impl From<TokenTree> for TokenStream
impl From<TokenTree> for TokenStream
创建包含单个 token 树的 token 流。
source§fn from(tree: TokenTree) -> TokenStream
fn from(tree: TokenTree) -> TokenStream
source§impl FromIterator<TokenStream> for TokenStream
impl FromIterator<TokenStream> for TokenStream
对 token 流的 “flattening” 操作将来自多个 token 流的 token 树收集到单个流中。
source§fn from_iter<I: IntoIterator<Item = TokenStream>>(streams: I) -> Self
fn from_iter<I: IntoIterator<Item = TokenStream>>(streams: I) -> Self
1.29.0 · source§impl FromIterator<TokenTree> for TokenStream
impl FromIterator<TokenTree> for TokenStream
将多个 token 树收集到单个流中。
source§impl FromStr for TokenStream
impl FromStr for TokenStream
尝试将字符串拆分为 tokens 并将那些 tokens 解析为 token 流。 可能由于多种原因而失败,例如,如果字符串包含不平衡的定界符或该语言中不存在的字符。
解析的流中的所有 tokens 都获得 Span::call_site()
跨度。
NOTE: 某些错误可能导致 panics 而不是返回 LexError
。我们保留稍后将这些错误更改为 LexError 的权利。