Cargo(包管理工具)
cargo
是官方的 Rust 包管理工具。
依赖关系
cargo
可以管理项目的依赖关系。
要创建一个新的 Rust 项目。
# 一个二进制项目
$ cargo new foo
# 一个库项目
$ cargo new --lib bar
之后,你应该看到类似这样的文件层次结构:
.
├── bar
│ ├── Cargo.toml
│ └── src
│ └── lib.rs
└── foo
├── Cargo.toml
└── src
└── main.rs
main.rs
是项目的根源文件。Cargo.toml
是该项目的 cargo
配置文件。
文件内容如下所示:
[package]
name = "foo"
version = "0.1.0"
authors = ["you"]
[dependencies]
测试
测试就是一种验证非测试代码是否按预期运行的 Rust 函数。
#[derive(Debug)]
struct Rectangle {
width: u32,
height: u32,
}
impl Rectangle {
fn can_hold(&self, other: &Rectangle) -> bool {
self.width > other.width && self.height > other.height
}
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn larger_can_hold_smaller() {
let larger = Rectangle {
width: 8,
height: 7,
};
let smaller = Rectangle {
width: 5,
height: 1,
};
assert!(larger.can_hold(&smaller));
}
}
然后,运行 cargo test
来查看是否通过。
$ cargo test
Compiling rectangle v0.1.0
Finished test [unoptimized + debuginfo] target(s) in 0.51s
Running unittests src/lib.rs (...)
running 1 test
test tests::larger_can_hold_smaller ... ok
test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
Doc-tests rectangle
running 0 tests
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
Loading...
> 此处输出代码运行结果