modの使い方を練習していたのですが、サンプルではmy/mod.rsにもmodを書いて階層化をしていたので、パスのようにmod my::nestedでnestedファイルのfunctionだけ呼びたい場合、できるかどうか試してみましたが、できませんでした。
やりたいこと
mod my::nested
のように階層化したmodをやりたい
// mod my::nested; // <= 不可 mod my fn function() { println!("called `function()`"); } fn main() { my::nested::function(); }
$ tree . . |-- my | |-- mod.rs | `-- nested.rs `-- split.rs
結果
できませんでした。
rust - How do 'use' and 'mod' work when there are nested source directories? - Stack Overflow
このStackoverflowに書いてある通り、できないらしいです。
You cannot use :: in a mod declaration.
You need a file src/book/mod.rs, containing:
感想
Rust初心者なので、mod のネストの必要性がそもそもあるかどうかはわかりません・・・