Skip to content

附录 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...
│   ├── ……