4个版本
0.1.3 | 2021年3月27日 |
---|---|
0.1.2 | 2021年3月27日 |
0.1.1 | 2021年3月26日 |
0.1.0 | 2021年3月26日 |
#233 in 缓存
在 yair 中使用
7KB
62 行
🏴☠️ envcache
envcache软件包(环境缓存)允许用户在build.rs脚本中缓存环境变量,以便后续对cargo的调用不需要指定相同的变量。
例如,假设你有一个build.rs,它需要指定SOME_VAR
才能工作。可能是一个位于Rust生态系统之外的库的路径(如LLVM)
SOME_VAR=42 cargo test
cargo clippy # Will fail because SOME_VAR is not set
这将失败,因为运行cargo clippy
需要它以SOME_VAR=42
的方式运行。使用envcache,我们可以使用一个build.rs
来确保这将运行
use envcache;
# std::env::set_var("OUT_DIR", std::env::temp_dir());
let mut envcache = envcache::EnvCache::new();
envcache.cache("SOME_VAR");
现在如果我们再次运行这个
SOME_VAR=42 cargo test
cargo clippy # SOME_VAR will be 42
您可以通过在命令行中重新指定来更改先前设置的缓存变量
SOME_VAR=42 cargo test
SOME_VAR=13 cargo test
cargo test # SOME_VAR will be 13!
请注意,运行cargo clean
将删除先前缓存的变量,因此运行
SOME_VAR=42 cargo test
cargo clippy # Will work because we've cached SOME_VAR
cargo clean
cargo test # Will fail because SOME_VAR won't be set