TAKOYAKING’s blog 一覧

TAKOYAKING’s blog

たこ焼き系

Rustでmodはネストできない

ファイルの階層構造 | Rust by Example

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 のネストの必要性がそもそもあるかどうかはわかりません・・・