VOICEVOX / voicevox_core

無料で使える中品質なテキスト読み上げソフトウェア、VOICEVOXのコア
https://voicevox.hiroshiba.jp/
MIT License
844 stars 114 forks source link

モジュールレベルのglob importをすべて取り除く #708

Closed qryxip closed 8 months ago

qryxip commented 8 months ago

内容

use super::*use self::foo::*のようなglob importを取り除きます。

ただし次のような、fn内でのenumのバリアントに対するものは残します。なぜならこれらは影響範囲が限定的だからです(人間の認知にとっても)。

https://github.com/VOICEVOX/voicevox_core/blob/0788c2ef225f0665cbe371b80ee3f3b53a869f2a/crates/voicevox_core_c_api/src/helpers.rs#L25-L32

コードエティタの支援の仕組みが完全に整っていなかったRust出始めの数年(2010年代後半)とは違ってRust Analyzerがある現在、glob importの恩恵は少なくなっていると思います。加えてこのリポジトリの場合、パブリックにする必要のないアイテムまでpubが付けられることによって結構カオスなことになっていると感じています。先日のブロッキング版APIのときもちょくちょく牙を剥いてくるように感じました。

glob importを使った方が適切な箇所があったとしても、いったん可視性について設計し直したあと改めてglob importにする、という流れの方がよいかなと思いました。

関連 Issue

Resolves #467.

その他