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