我很难让Rust加载子目录中的文件。Rust将文件视为模块,将代码视为模块的一部分,但是我习惯了Ruby将文件和目录与它们包含的代码分开处理的方式。
src/主rs

mod lib {
    pub mod manifest;
}

src/lib/manifest.rs文件
mod structs {
    pub mod entity;
}

src/lib/structs/entity.rs文件
pub struct entity {
    type: String
}

我得到的错误是:
error: cannot declare a new module at this location
 --> src/lib/manifest.rs:2:13
  |
2 |     pub mod entity;
  |             ^^^^^^
  |
note: maybe move this module `structs` to its own directory via `structs/mod.rs`
 --> src/lib/manifest.rs:2:13
  |
2 |     pub mod entity;
  |             ^^^^^^
note: ... or maybe `use` the module `entity` instead of possibly redeclaring it
 --> src/lib/manifest.rs:2:13
  |
2 |     pub mod entity;
  |             ^^^^^^

最佳答案

解决此问题的最佳方法是将清单文件重命名为mod.rs,并将main.rs中的第一行更改为:

mod lib;

并将mod.rs更改为:
pub mod structs {
    mod entity;
}

我想你的错误是因为有一个manifest.rs文件,但是没有文件夹。为什么这会导致子文件夹文件无法加载我不能说,我还是新手,所以很有可能我错了。
有更多的铁锈知识的人可能知道,但因为他们不是乐于助人,而是拒绝投票,我怀疑你会得到一个更好的答案。

10-07 19:52
查看更多