From 8080e1d481a22a9ef4b9e1225e4af6d6cd3ae188 Mon Sep 17 00:00:00 2001 From: Aaran Xu Date: Mon, 24 Jan 2022 03:20:05 +0800 Subject: [PATCH] Typo fix --- src/ch19-06-macros.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/ch19-06-macros.md b/src/ch19-06-macros.md index 31dbca4..bb201d5 100644 --- a/src/ch19-06-macros.md +++ b/src/ch19-06-macros.md @@ -108,7 +108,7 @@ pub fn some_name(input: TokenStream) -> TokenStream { 示例 19-29: 一个使用过程宏的例子 -定义过程宏的函数以一个 `TokenStream` 作为输入并产生一个 `TokenStream` 作为输出。该 `TokenStream` 类型由包含在 Rust 中的 `proc_macroRust` crate 定义,并表示令牌序列。这是宏的核心:宏操作的源代码构成了输入 `TokenStream`,宏产生的代码是输出 `TokenStream`。该函数还附加了一个属性,该属性指定我们正在创建过程宏的类型。我们可以在同一个 crate 中拥有多种过程宏。 +定义过程宏的函数以一个 `TokenStream` 作为输入并产生一个 `TokenStream` 作为输出。该 `TokenStream` 类型由包含在 Rust 中的 `proc_macro` crate 定义,并表示令牌序列。这是宏的核心:宏操作的源代码构成了输入 `TokenStream`,宏产生的代码是输出 `TokenStream`。该函数还附加了一个属性,该属性指定我们正在创建过程宏的类型。我们可以在同一个 crate 中拥有多种过程宏。 让我们看看不同种类的过程宏。我们将从自定义派生宏开始,然后解释与其他形式宏不同的细微差别。