SwiftSyntaxを基盤とするSwiftコードジェネレーター。テンプレートを使ってモックやEquatable、Codableなどの定型コードを生成します。
dtolnay/proc-macro-workshop
Rustの手続き型マクロを実装する、5つのプロジェクトからなる実践ワークショップ。各プロジェクトには雛形とtrybuildのテストスイートが用意されています。
- スター
- 4,873
- フォーク
- 1,216
- 未解決の Issue
- 3
- 最終コミット
- 3 か月前
これは何?
このリポジトリは、コンパイル時にRustコードを生成するRust関数である、手続き型マクロの書き方を学ぶためのワークショップです。5つのプロジェクトが含まれています。builderパターン用のderiveマクロ、フィールドごとに書式文字列を指定できるカスタマイズ可能なDebug derive、インデックス付きのコードを生成する関数風マクロseq!、ソートされていないenumバリアントをコンパイルエラーとして報告する属性マクロ#[sorted]、そして構造体のフィールドをバイト配列にパックし、getterとsetterを生成する#[bitfield]属性です。
各プロジェクトには雛形と、testsディレクトリ内のテストスイートが用意されています。テストにはtrybuildを使い、正常に展開されるケースと、コンパイルに失敗すべきコードに対するコンパイラエラーメッセージが正確に一致するかを検証します。ワークショップでは、まずderive(Builder)から始め、その後はトレイト境界、独自の入力パース、診断機能のどれを重点的に学びたいかに応じて、ほかのプロジェクトを選ぶ進め方を提案しています。
また、cargo expandの使用や、生成されたトークンストリームをstderrに出力する方法など、マクロのデバッグ手法も解説しています。
主な機能
- 01derive、関数風、属性マクロを扱う、難易度別の5つのプロジェクト。
- 02コンパイラエラーの出力内容まで正確に検証する、trybuildベースのテストスイート。
- 03各プロジェクトの雛形と、段階的にテストを有効化する手順。
- 04cargo expandやトークンストリームの出力を使ったデバッグ方法。
- 05関心に応じた学習順序の提案。
ユースケース
- ガイド付きの演習を通じて、Rustの手続き型マクロを初めて学ぶ。
- ジェネリックなderiveマクロでトレイト境界を扱う練習をする。
- Rustライブラリ向けに、独自のコンパイル時診断を実装する準備をする。
- マクロでビットパック構造体のAPIを生成する方法を学ぶ。
クイックスタート
- 1
リポジトリをクローンし、builder などのプロジェクトディレクトリに移動します
- 2
そのプロジェクトのテストスイートを実行します
cargo test
トピック
よくある質問
- proc-macro-workshop とは?
- Rustの手続き型マクロを実装する、5つのプロジェクトからなる実践ワークショップ。各プロジェクトには雛形とtrybuildのテストスイートが用意されています。 このリポジトリは、コンパイル時にRustコードを生成するRust関数である、手続き型マクロの書き方を学ぶためのワークショップです。5つのプロジェクトが含まれています。builderパターン用のderiveマクロ、フィールドごとに書式文字列を指定できるカスタマイズ可能なDebug derive、インデックス付きのコードを生成する関数風マクロseq!、ソートされていないenumバリアントをコンパイルエラーとして報告する属性マクロ#[sorted]、そして構造体のフィールドをバイト配列にパックし、getterとsetterを生成する#[bitfield]属性です。
- proc-macro-workshop は無料で使えますか?ライセンスは?
- proc-macro-workshop は Apache-2.0 ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
- proc-macro-workshop は今もメンテナンスされていますか?
- 半年以内に更新あり。proc-macro-workshop の最終コミットは 2026年8月6日 です。
- proc-macro-workshop は何に使えますか?
- ガイド付きの演習を通じて、Rustの手続き型マクロを初めて学ぶ。 ジェネリックなderiveマクロでトレイト境界を扱う練習をする。 Rustライブラリ向けに、独自のコンパイル時診断を実装する準備をする。 マクロでビットパック構造体のAPIを生成する方法を学ぶ。
- proc-macro-workshop のインストール方法は?
- リポジトリをクローンし、builder などのプロジェクトディレクトリに移動します そのプロジェクトのテストスイートを実行します: cargo test
- proc-macro-workshop はどこで入手できますか?
- ソースコードとインストール手順は GitHub にあります:https://github.com/dtolnay/proc-macro-workshop
概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。
関連プロジェクト
Claude APIを使ったコーディングエージェントの作り方を、ファイル・シェル・検索ツールを順に追加しながら学ぶ、Goのハンズオンワークショップです。
Amazon Bedrockの基盤モデルを使った生成AIアプリの構築を学べる、実践的なJupyter notebookワークショップです。
公式Rustブックと併用しながら、Rustコードの読み書きを学べる小さな演習集です。
教育用途を想定し、定番アルゴリズムとデータ構造をRustで実装したコレクション。
mdBookでビルドされる、「The Rust Programming Language」の公式ソース。無料で読めるオンライン版も公開されています。