基于 SwiftSyntax 的 Swift 代码生成工具,通过模板自动生成 Mock、Equatable、Codable 等样板代码。
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
克隆仓库并进入某个项目目录,例如 builder
- 2
运行该项目的测试套件
cargo test
标签
常见问题
- 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 数据每日更新。
相关项目
一个分步骤的 Go 教程,带你基于 Claude API 从零构建一个编程智能体,逐步加入文件、命令和代码搜索工具。
通过 Jupyter Notebook 实操练习,教开发者用 Amazon Bedrock 上的基础模型构建生成式 AI 应用。
一组小型 Rust 练习,帮助你熟悉阅读和编写 Rust 代码,适合配合官方 Rust 书一起学习。
用 Rust 实现的经典算法与数据结构合集,面向学习用途。
《The Rust Programming Language》官方书籍的源码仓库,基于 mdBook 构建在线版本。