繁体   English   中英

在 Rust 中使用父目录中的模块

[英]Use module from parent directory in rust

是否有可能以这种方式构建 Rust 项目?

目录结构:

src
├── a
│   └── bin1.rs
├── b
│   ├── bin2.rs
└── common
    ├── mod.rs

来自 Cargo.toml:

[[bin]]
name = "bin1"
path = "src/a/bin1.rs"

[[bin]]
name = "bin2"
path = "src/b/bin2.rs"

我希望能够使用bin1.rsbin2.rscommon模块。 可以通过在导入之前添加 path 属性来实现:

#[path="../common/mod.rs"]
mod code;

有没有办法让bin1.rsbin2.rs使用common而不必对路径进行硬编码?

在二进制文件之间共享代码的推荐方法是使用src/lib.rs文件。 两个二进制文件都可以自动访问可通过此lib.rs文件访问的任何内容作为单独的包。

然后你只需定义一个mod common; src/lib.rs文件中。 如果您的 crate 名为my_crate ,则您的二进制文件将能够与

use my_crate::common::Foo;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM