Repolode
dtolnay

dtolnay/proc-macro-workshop

一套动手实践的 Rust 过程宏练习项目,包含五个带测试套件的任务骨架。

Star
4,873
Fork
1,216
未关闭 Issue
3
最近提交
3个月前

这是什么?

这是一个学习 Rust 过程宏编写的实践项目集。过程宏是在编译期生成 Rust 代码的函数。仓库包含五个练习:为 builder 模式生成代码的 derive 宏、可按字段指定格式字符串的自定义 Debug 派生宏、批量生成带编号代码副本的函数式宏 seq!、检查枚举变体是否按序排列并在编译时报错的属性宏 #[sorted],以及把结构体字段打包为字节数组并生成读写方法的 #[bitfield] 属性宏。

每个项目都提供代码骨架和位于 tests 目录下的测试套件,测试基于 trybuild,既验证宏展开结果,也校验应当编译失败的代码所输出的错误信息是否准确。仓库建议从 derive(Builder) 入门,再根据兴趣选择 trait bound 处理、自定义语法解析或编译期诊断等方向继续深入。此外还介绍了调试宏的方法,例如使用 cargo expand 以及把生成的 token 输出到 stderr。

核心功能

  • 01涵盖 derive、函数式和属性宏三类过程宏的五个练习项目。
  • 02基于 trybuild 的测试套件,可校验编译器报错信息是否精确。
  • 03每个项目提供代码骨架,并按顺序逐个启用测试。
  • 04介绍使用 cargo expand 和输出 token 流的宏调试方法。
  • 05根据个人兴趣给出推荐的学习顺序。

适用场景

  • 通过引导式练习首次学习 Rust 过程宏。
  • 练习在泛型 derive 宏中处理 trait bound。
  • 为 Rust 库编写自定义编译期错误提示做准备。
  • 学习如何由宏生成位字段结构体的访问接口。

快速上手

  1. 1

    克隆仓库并进入某个项目目录,例如 builder

  2. 2

    运行该项目的测试套件

    cargo test

标签

#rust#procedural-macros#metaprogramming#learning#workshop#trybuild#code-generation

常见问题

proc-macro-workshop 是什么?
一套动手实践的 Rust 过程宏练习项目,包含五个带测试套件的任务骨架。 这是一个学习 Rust 过程宏编写的实践项目集。过程宏是在编译期生成 Rust 代码的函数。仓库包含五个练习:为 builder 模式生成代码的 derive 宏、可按字段指定格式字符串的自定义 Debug 派生宏、批量生成带编号代码副本的函数式宏 seq!、检查枚举变体是否按序排列并在编译时报错的属性宏 #[sorted],以及把结构体字段打包为字节数组并生成读写方法的 #[bitfield] 属性宏。
proc-macro-workshop 可以免费使用吗?用的什么许可证?
proc-macro-workshop 以 Apache-2.0 许可证开源。用于商业产品前,请先确认许可证条款。
proc-macro-workshop 还在维护吗?
半年内有更新。proc-macro-workshop 最近一次提交是在 2026年8月6日。
proc-macro-workshop 适合用来做什么?
通过引导式练习首次学习 Rust 过程宏。 练习在泛型 derive 宏中处理 trait bound。 为 Rust 库编写自定义编译期错误提示做准备。 学习如何由宏生成位字段结构体的访问接口。
proc-macro-workshop 怎么安装和运行?
克隆仓库并进入某个项目目录,例如 builder 运行该项目的测试套件: cargo test
在哪里获取 proc-macro-workshop?
源代码和安装说明在 GitHub 上:https://github.com/dtolnay/proc-macro-workshop

概要由 AI 根据项目 README 生成;GitHub 数据每日更新。

相关项目