Rustマクロの薄い本

訳注: 本書はThe Little Book of Rust Macros(Lukas Wirth氏による改訂版)の非公式日本語訳です🦀🇯🇵

Note: 翻訳元はDaniel Keep氏による原著(2016年の中頃より更新停止)を引き継いだもので、mdBookを利用するように改変してあります。

本書のHTML版はこちらから読めます。リポジトリはこちらにあります。

中国語訳はこちら

本書の目標は、Rustのマクロ(宣言的マクロ(Macros by Example)と手続き的マクロ(WIP)の両方)に関するRustコミュニティの集合知を蒸留することです。 ですから、(プルリクエストという形での)内容の追加も(issueという形の)リクエストも大歓迎です。 もし不明な点があれば、気軽に質問してください。よくわからない記述があれば、わかりやすくしてほしい旨を恐れずissueにぶつけてください。 本書をできる限り最高の学習資料にするのが目標です。

この本の原著は、私がRust言語を学んでいた頃に宣言的マクロ (Macros by Example)スタイルのマクロについて理解する大いなる助けになりました。 残念なことに、原著は2016年4月を最後に更新が途絶えてしまいました。その一方で、Rust言語自体もマクロシステムも進化し続けています。 そんなわけで私は、原著をアップデートし、最新に保ち、さらには新たな発見を書き加えるという仕事を引き受けたのです。 Rustに入門する方々がマクロシステムという手こずりがちなRust言語の一機能について理解を深めようとするにあたり、本書が助けになれば幸いです。

本書は読者がRustの基本的な知識を持っていることを仮定して書かれています。マクロに関係ない言語機能や構成要素については説明しません。 マクロに関する事前知識は不要です。 The Book1 の7章までを読んで理解しておくのが必須事項です。とはいえ、大部分を読んでおくことをおすすめします。

謝辞

原著の著者であるDaniel Keep氏、および原著へのコントリビューターの皆様(こちらで確認できる)に深く感謝申し上げます。

ライセンス

本書は原著のライセンスを継承します。よって、本書の使用はCreative Commons Attribution-ShareAlike 4.0 International LicenseMIT licenseの両方の下で許諾されます2

2

訳注: 日本語版についても同様の扱いとします。詳しくは本プロジェクトのリポジトリのREADMEをご覧ください。