我的项目有一个客户端和一个服务器二进制文件。所以我的Cargo.toml
看起来像
[[bin]]
name = "server"
path = "src/server/mod.rs"
[[bin]]
name = "client"
path = "src/client.rs"
我的文件结构看起来像这样:
.
├── client.rs
├── server
│ ├── something.rs
│ └── mod.rs
└── shared
├── mod.rs
└── something2.rs
我想做的是在server/mod.rs
中使用shared
中的任何内容。要做到这一点,我试图有一个mod shared
和use crate::shared
在server/mod.rs
,但我得到了错误“没有'共享'在根”(它只在shared/
寻找)。我没有一个main.rs
,我可以正确地声明模块。
所以我尝试的另一件事是使用server.rs
而不是server/mod.rs
。这部分工作,因为我现在可以宣布国防部共享。但是,我无法访问server/something.rs
中的任何内容。有没有办法让server.rs
看到server/
的内容,或者有没有办法让server/mod.rs
看到相邻模块的内容,而不需要顶层的main.rs
?
1条答案
按热度按时间ojsjcaue1#
可以使用
#[path]
属性:但正确的方法是除了
client
和server
之外,还有一个库,并使两者都依赖于它。