Crate proc_macro
1.15.0 · source ·Expand description
定义新宏时为宏作者提供的支持库。
由标准发行版提供的该库提供了在过程定义的宏定义的接口中使用的类型,例如,类似函数的宏 #[proc_macro]
,宏属性 #[proc_macro_attribute]
和自定义派生属性 #[proc_macro_derive]
。
有关更多信息,请参见 这本书。
Modules
- tracked_envExperimental跟踪对环境变量的访问。
- tracked_pathExperimental跟踪对其他文件的访问。
TokenStream
类型的公共实现详细信息,例如迭代器。
Macros
- quoteExperimental
quote!(..)
接受任意的 tokens 并扩展为描述输入的TokenStream
。 例如,quote!(a + b)
将产生一个表达式,当求值时,它构造TokenStream
[Ident("a"), Punct('+', Alone), Ident("b")]
。
Structs
- DiagnosticExperimental表示诊断消息和关联的子消息的结构体。
- ExpandErrorExperimental从
TokenStream::expand_expr
返回的错误。 - LineColumnExperimental代表
Span
开头或结尾的行 - 列对。 - SourceFileExperimental给定
Span
的源文件。 - 分隔的 token 流。
- 标识符 (
ident
)。 TokenStream::from_str
返回错误。- 字符串字面量 (
"hello"
),字节字符串 (b"hello"
),字符 ('a'
),字节字符 (b'a'
),带或不带后缀 (‘1’,1u8
,2.3
,2.3f32
) 的整数或浮点数。 Punct
是单个标点符号,例如+
、-
或#
。- 源代码区域以及宏展开信息。
- 此 crate 提供的主要类型,表示 tokens 的抽象流,或更具体地说,表示 token 树的序列。 该类型提供用于迭代这些 token 树的接口,并且相反,将大量 token 树收集到一个流中。
Enums
- LevelExperimental代表诊断级别的枚举。
- 描述如何分隔 token 树的序列。
- 单个 token 或 token 树的定界序列 (例如
[1, (), ..]
)。
Traits
- MultiSpanExperimental一个 trait 实现,可以转换为一组
Span
s 的类型。
Functions
- quoteExperimental将
TokenStream
引用到TokenStream
中。 这是quote!()
proc 宏的实际实现。 - quote_spanExperimental将
Span
引用到TokenStream
中。 这是实现自定义引号所需的。 - 确定是否已使 proc_macro 可被当前正在运行的程序访问。