Rustで複数のbinをおいたときに function foo is never usedの警告がでないようにする
Rustの1つのcargoプロジェクトで、src/bin以下に複数のbinをおいていたが、いろいろな関数でfunction foo is never usedという警告が出てしまっていた。 もちろん#[allow(dead_code)]って関数やファイルの先頭に書けば警告は出なくなるのだが、dead_code検出自体は便利なので、むやみに抑制しないようにしたい。rust-analyzerが出す警告だと思うので、コンパイルに関するなにかだろうと思って、うまくやって警告そのものが出ないようにできないか調べた。
AI(OpenAI 4o)だとプロンプトにも問題があったかもしれないがうまく答えてくれなかったが、stackoverflowに参考になる答えがあった。
rust - Dead code warning with multiple binaries? - Stack Overflow
つまり、複数のbinがあるということは複数回コンパイルが走るので、そのうちのどれかから参照されていないとdead_code扱いになるということのようだ。 それを防ぐためには、呼び出すコードはlib.rsに集約してそれぞれのbinはそこから呼び出せばよい。