可視性
モジュールはプライバシー境界です:
- モジュールのアイテムはデフォルトで非公開です(実装の詳細を隠します)。
- 親および兄弟のアイテムは常に可視です。
- 言い換えると、あるアイテムがモジュール
fooで可視であれば、そのアイテムはfooのすべての子孫でも可視です。
// Copyright 2022 Google LLC // SPDX-License-Identifier: Apache-2.0 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(); }
- モジュールを公開するには
pubキーワードを使用します。
さらに、公開範囲を制限するための高度な pub(...) 指定子もあります。
- Rust Reference を参照してください。
pub(crate)の可視性を設定するのは一般的なパターンです。- あまり一般的ではありませんが、特定のパスに可視性を与えることもできます。
- いずれの場合も、可視性は祖先モジュール(およびそのすべての 子孫)に対して付与されている必要があります。