可視性
モジュールはプライバシーの境界です。
- モジュール アイテムはデフォルトでプライベートです(実装の詳細は表示されません)。
- 親アイテムと兄弟アイテムは常に見えます。
- 言い換えれば、あるアイテムがモジュール
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)の可視性を設定するのは一般的なパターンです。- それほど一般的ではありませんが、特定のパスに対して可視性を指定することが出来ます。
- どのような場合も、祖先モジュール(およびそのすべての子孫)に可視性を与える必要があります。