File 正在尝试加载文件

File 正在尝试加载文件,file,rust,File,Rust,我在试图让Rust加载子目录中的文件时遇到问题。Rust将文件视为模块,将代码视为模块的一部分,但我习惯于Ruby将文件和目录与它们包含的代码分开处理的方式 src/main.rs mod lib { pub mod manifest; } mod structs { pub mod entity; } pub struct entity { type: String } src/lib/manifest.rs mod lib { pub mod manif

我在试图让Rust加载子目录中的文件时遇到问题。Rust将文件视为模块,将代码视为模块的一部分,但我习惯于Ruby将文件和目录与它们包含的代码分开处理的方式

src/main.rs

mod lib {
    pub mod manifest;
}
mod structs {
    pub mod entity;
}
pub struct entity {
    type: String
}
src/lib/manifest.rs

mod lib {
    pub mod manifest;
}
mod structs {
    pub mod entity;
}
pub struct entity {
    type: String
}
src/lib/structs/entity.rs

mod lib {
    pub mod manifest;
}
mod structs {
    pub mod entity;
}
pub struct entity {
    type: String
}
我得到的错误是:

错误:无法在此位置声明新模块
-->src/lib/manifest.rs:2:13
|
2 | pub mod实体;
|             ^^^^^^
|
注意:可以通过'structs/mod.rs将此模块'structs'移动到它自己的目录中`
-->src/lib/manifest.rs:2:13
|
2 | pub mod实体;
|             ^^^^^^
注:。。。或者“使用”模块“实体”,而不是可能重新定义它
-->src/lib/manifest.rs:2:13
|
2 | pub mod实体;
|             ^^^^^^

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

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

mod lib;
pub mod structs {
    mod entity;
}
我认为您出错的原因是因为有一个manifest.rs文件,但没有文件夹。为什么这会导致子文件夹文件无法加载我不能说,我还是个新手,所以很有可能我错了


有些人可能知道,但由于他们投了反对票,而不是提供帮助,我怀疑你会得到更好的答案。

你读过吗?如果你解释一下书中的解释有什么问题,我们也许能帮上忙。否则,我们很可能只是重复书中的内容。您也可以查看,看看这种解释方式是否更合适。谢谢,非常有用,我的意思是第二个链接。您尝试过错误消息注释中的建议吗?你还试过其他什么东西吗?你到底想做什么,为什么你想用你想做的方式来组织你的项目?以问题形式出现的更好的标题也可能有助于人们更好地理解问题。谢谢,问题是有人对这个问题发表了评论,并链接到了一些关于模块的信息,这很有帮助。最后,我已经做了你提到的那些更改,它确实消除了错误,但感谢你尝试了任何方法。我也部分同意,我认为因为没有文件夹,它会破坏loadtree,rust不喜欢它,所以它会尖叫“不,这里没有新模块,因为没有子文件夹”或诸如此类的东西,但因为没有人试图简单地,我真的不知道。我可以问一下,为什么你要回答这个问题,然后就自己的答案发表评论,好像有很多人参与其中?也许你是出于某种原因想登录到不同的帐户?哇,我想这已经超出了你的想象了。你帮了我的忙,所以我很感激,我的回答是我假装有人试图回答这个问题,而我的评论是我假装有人回答我。