dtolnay/proc-macro-workshop
67.6
Adequate · 30 September 2026
54
lines of production code
Rust
primary language
2
measurements over time
What this system is
This system is a Rust workspace designed as an educational workshop for procedural macros, providing both instructional materials and a set of macro implementations. It includes a fully functional bitfield macro for generating bit-packed struct accessors, alongside skeleton implementations for builder, debug, sequence, and sorted macros that serve as structural foundations for learning. The project utilizes trybuild for comprehensive compile-time and UI testing to validate macro behavior and error handling.
Features
Add CustomDebug derive macro skeleton
The debug library now includes a new proc-macro derive named CustomDebug. Currently, this macro is a placeholder that does not implement any functionality, serving as a structural foundation for future debug-related features.
debug/src · high confidence
Add experimental \#\[sorted\] procedural macro attribute
A new \\#\[sorted\]\ procedural macro attribute has been added to the library. Currently, it is a stub that does not perform any sorting logic and will panic if invoked, serving as a placeholder for future implementation.
sorted/src · high confidence
Added initial seq proc-macro skeleton
A new \seq\ proc-macro has been added to the library, providing a \\#\[seq\]\ attribute entry point. Currently, the macro is a placeholder that does not implement any functionality, serving as a structural foundation for future development.
seq/src · high confidence
Initial bitfield macro skeleton and test suite
The \bitfield\ crate is introduced with a procedural macro that generates getters and setters for struct fields, allowing users to define compact, bit-packed data structures. The initial implementation supports basic integer fields (B1–B64), enforces that total field sizes are multiples of 8 bits, and provides accessor methods with signatures matching the narrowest unsigned integer types. It also supports enum fields with power-of-two variants and allows optional \\#\[bits = N\]\ attributes for explicit size documentation. A comprehensive test suite validates these behaviors, including edge cases like fields spanning byte boundaries and compile-time checks for invalid discriminants or sizes.
bitfield · high confidence
Initial builder derive macro skeleton
The builder module now includes a new \lib.rs\ file that defines a \\#\[proc\_macro\_derive(Builder)\]\ macro. Currently, this macro is a placeholder that does not implement any functionality, serving as the structural foundation for future builder pattern generation.
builder/src · high confidence
Initial project setup with workshop materials and licensing
This change establishes the repository structure for a Rust procedural macros workshop. It adds the Apache-2.0 and MIT license files, a .gitignore configuration for Rust build artifacts, and a main.rs entry point. The README.md introduces five specific learning projects: derive macros for Builder and CustomDebug, a function-like seq! macro, and attribute macros for sorted and bitfield, along with debugging tips and workflow instructions for participants.
(repo-wide) · high confidence
Initial project template structure with trybuild integration
The .template directory now provides a foundational project layout for new projects, including a lib.rs entry point and a test suite configured with trybuild for compile-time testing. The template includes a placeholder test file (tests/progress.rs) that initializes trybuild but currently contains no active tests, and the extern crate declarations have been removed from the template source to align with modern Rust conventions.
.template · high confidence
Initial skeleton for the \`\#\[bitfield\]\` procedural macro
The \bitfield/impl\ crate has been added as the implementation backend for the \\#\[bitfield\]\ attribute. Currently, it provides a procedural macro stub that accepts arguments and input but returns \unimplemented!()\, serving as the structural foundation for future bitfield generation logic.
bitfield/impl · high confidence
Test coverage
Added UI test suite for the \#\[sorted\] procedural macro; Added builder tutorial tests; Added initial test suite for the seq procedural macro; Added test suite for CustomDebug derive macro implementation.
Dependencies
Initialize Rust workspace with proc-macro crates and trybuild testing
The project is structured as a Rust workspace containing several proc-macro crates (bitfield, derive\_builder, derive\_debug, seq, sorted) and a workshop binary, all targeting the 2021 edition. Each crate includes dev-dependencies on trybuild version 1.0.108 with the 'diff' feature enabled to support UI testing with stderr mismatch diffs.
(dependencies) · high confidence
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
How this codebase got here
Score
- CAI 74 → 68 (-5.9)
- Rubric changed (rubric-2026.09.11 → rubric-2026.09.18) — scores are not directly comparable.
Lenses
- Code Health 99 → 99 (+0.0)
- Architecture 100 → 100 (+0.0)
- Maturity 90 → 90 (+0.0)
- Readiness 50 → 37 (-12.5)
- Security 100 → 100 (+0.0)
Resolved (2)
- Documentation: no installation or build instructions (README.md)
- Documentation: no licence statement (README.md)
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
Survey your own repository
dtolnay/proc-macro-workshop was measured the same way every project in this corpus was: the same rubric, at a pinned commit, with the result published in full. Point a surveyor at a repository you know and see whether you agree with it.
About this page
- The score is its most recent published measurement, taken on 30 September 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
- Measured at commit 7555faf30a350fb0360c75dba2d77c50ec9b705d — the exact code this score is about.
- Scored under rubric-2026.09.18 — the same rubric and the same method as every other entry in this index.
- Measured by watchdog.canine.dev using codehealth-analyzer preprod-cb25ca4feafa.