附录 A
(参考性附录)
Rust 官方推荐的目录结构
A.1 单Package工程项目
├── Cargo.lock
├── Cargo.toml
├── build.suffix
├── src/
│ ├── lib.rs
│ ├── main.rs
│ └── bin/
│ ├── named-executable.rs
│ ├── another-executable.rs
│ └── multi-file-executable/
│ ├── main.rs
│ └── some_module.rs
│ └── other source.rs OR module folder...
├── benches/
│ ├── large-input.rs
│ └── multi-file-bench/
│ ├── main.rs
│ └── bench_module.rs
├── scripts/
│ └── build.suffix
├── examples/
│ ├── simple.rs
│ └── multi-file-example/
│ ├── main.rs
│ └── ex_module.rs
└── tests/
├── some-integration-tests.rs
└── multi-file-test/
├── main.rs
└── test_module.rs
具体包含:
a) Cargo.toml和Cargo.lock存储在项目的根目录中
b) 源代码放入src目录.
c) 默认库文件是src/lib.rs
d) 默认的可执行程序源文件是src/main.rs,其他可执行程序源文件,可以放入src/bin/
e) 示例放入examples目录.
f) 基准测试(Benchmarks)放入benches目录
g) 集成测试放入tests目录(单元测试放入被测的文件中)
h) 构建脚本build.suffix放置于根目录下或scripts目录中
A.2 多 Package 工程项目
Workspace(工作空间)是由同一个Cargo.toml管理的一个或多个Package(包)的集合。Package子目录的结构皆遵循单Package工程项目的约定。目录结构示例如下:
├── Cargo.lock
├── Cargo.toml //Workspace定义文件,包含了所有Package清单
├── package1/
│ ├── Cargo.lock
│ ├── Cargo.toml
│ └── src/
│ ├── lib.rs
│ ├── main.rs
│ └── other source.rs OR module folder...
│ ├── ……
├── package2/
│ ├── Cargo.lock
│ ├── Cargo.toml
│ └── src/
│ ├── lib.rs
│ ├── main.rs
│ └── other source.rs OR module folder...
│ ├── ……