手続き型マクロを含む多くのライブラリは、2 つのクレートで構成されていますproc-macro
。実際のマクロを実装するクレートと、proc マクロを再エクスポートまたはラップする通常の「メイン」クレートです。これは、proc-macro
crate が proc マクロ以外のものを公にエクスポートできないためです。メインクレートが と呼ばれると仮定するとfoo
、マクロクレートは通常foo-derive
orと呼ばれfoo-macros
ます。
proc-macro
これにより、クレートのバージョン管理方法に関するいくつかの質問が発生します。もちろん、メインクレートはセマンティックバージョニングに従います。しかし、マクロクレートもそれに続くべきでしょうか? マクロクレートを直接使用するのではなく、メインクレートのみを使用してもらいたいです。proc-macro クレートの説明ではっきりと述べました。マクロ クレートを実装の詳細として扱いたい。
その場合、セマンティック バージョニングに従う必要はありませんよね? メインのクレートは、foo-macro = "=0.0.4"
.
これでいいですか?それとも、このアプローチで何かが壊れる可能性がありますか? コミュニティで確立されたベスト プラクティスはありますか?