可視性
モジュールはプライバシーの境界です。
- モジュール アイテムはデフォルトでプライベートです(実装の詳細は表示されません)。
- 親アイテムと兄弟アイテムは常に見えます。
- 言い換えれば、あるアイテムがモジュール
foo
から見える場合、そのアイテムはfoo
のすべての子孫から見えます。
mod outer { fn private() { println!("outer::private"); } pub fn public() { println!("outer::public"); } mod inner { fn private() { println!("outer::inner::private"); } pub fn public() { println!("outer::inner::public"); super::private(); } } } fn main() { outer::public(); }
This slide should take about 5 minutes.
- モジュールを公開するには
pub
キーワードを使用します。
また、高度な pub(...)
指定子を使用して、公開範囲を制限することもできます。
- Rust リファレンス をご覧ください。
pub(crate)
の可視性を設定するのは一般的なパターンです。- それほど一般的ではありませんが、特定のパスに対して可視性を指定することが出来ます。
- どのような場合も、祖先モジュール(およびそのすべての子孫)に可視性を与える必要があります。