lib.rs为root crate,可以在lib.rs中定义多个mod,例如

    1. src/lib.rs
    2. mod filesystem {
    3. pub fn mount() {}
    4. }

    但是当项目越来越大后,我们希望能将模块拆分到不同的文件中进行维护

    1. src/lib.rs
    2. mod filesystem;
    3. src/filesystem.rs
    4. pub fn mount() {}

    lib.rs中, mod filesystem; 告诉rust mod的实际内容在一个同名文件中,即filesystem.rs,同样,我们能在filesystem中引入子模块,这时候我们需要将filesystem变成目录

    1. src/filesystem/mod.rs
    2. mod dentry;
    3. pub fn mount() {}
    4. src/filesystem/dentry.rs
    5. pub fn inode() {}