分割前
- src/lib.rs
mod front_of_house { pub mod hosting { pub fn add_to_waitlist() {} } } pub use crate::front_of_house::hosting; pub fn eat_at_restaurant() { hosting::add_to_waitlist(); }
front_of_houseをsrc/front_of_house.rsに移動する。
- src/lib.rs
mod front_of_house; pub use crate::front_of_house::hosting; pub fn eat_at_restaurant() { hosting::add_to_waitlist(); }
- src/front_of_house.rs
pub mod hosting { pub fn add_to_waitlist() {} }
モジュールツリー内で、mod
定義は一度だけで良い。一度コンパイラがそのファイルがプロジェクトの一部であることを認識すると、他のファイルは参照する際に、そのパスを指定するだけで良い。言い換えるとmod
は他の言語のinclude
ではない。
hostingモジュールを/src/front_of_house/hosting.rsに移動する
- src/front_of_house.rs
pub mod hosting;
- src/front_of_house/hosting.rs
pub fn add_to_waitlist() {}