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’,1u82.32.3f32) 的整数或浮点数。
  • Punct 是单个标点符号,例如 +-#
  • 源代码区域以及宏展开信息。
  • 此 crate 提供的主要类型,表示 tokens 的抽象流,或更具体地说,表示 token 树的序列。 该类型提供用于迭代这些 token 树的接口,并且相反,将大量 token 树收集到一个流中。

Enums

Traits

  • MultiSpanExperimental
    一个 trait 实现,可以转换为一组 Spans 的类型。

Functions

  • quoteExperimental
    TokenStream 引用到 TokenStream 中。 这是 quote!() proc 宏的实际实现。
  • quote_spanExperimental
    Span 引用到 TokenStream 中。 这是实现自定义引号所需的。
  • 确定是否已使 proc_macro 可被当前正在运行的程序访问。