2个版本
0.1.1 | 2021年6月16日 |
---|---|
0.1.0 | 2021年6月9日 |
#551 in 配置
2,018 每月下载次数
在 2 crate 中使用
11KB
132 行
tmp_env
tmp_env 是一个crate,允许您创建临时环境,当不再需要时自动清理。
例如,有时您需要更改当前目录或设置环境变量来启动进程,但您不需要在程序的其余部分中使用此临时环境。然后您将使用 tmp_env
来创建环境变量,使用 tmp_env::set_var
而不是 std::env::set_var
,从 tmp_env::set_var
获取一个数据结构,当丢弃时会自动恢复对应的环境变量。
安装
将此依赖项放入您的 Cargo.toml
tmp_env = "0.1"
使用方法
- 临时更改当前目录
{
let _tmp_current_dir = tmp_env::set_current_dir("src").expect("should set the new current_dir");
let current_dir = std::env::current_dir().expect("cannot get current dir from std env");
assert!(current_dir.ends_with("src"));
}
let current_dir = std::env::current_dir().expect("cannot get current dir from std env");
assert!(!current_dir.ends_with("src"));
- 临时设置环境变量
{
let _tmp_env = tmp_env::set_var("TEST_TMP_ENV", "myvalue");
assert_eq!(std::env::var("TEST_TMP_ENV"), Ok(String::from("myvalue")));
}
// Because guard `_tmp_env` is dropped then the environment variable is also automatically unset (not restored because no previous value was set)
assert!(std::env::var("TEST_TMP_ENV").is_err());
- 临时创建目录
{
let tmp_dir = tmp_env::create_temp_dir().expect("cannot create temp dir"); // When tmp_dir is dropped this temporary dir will be removed
assert!(std::fs::metadata(&*tmp_dir).is_ok());
}
// The temporary directory is now removed
依赖
~310KB