7 个版本
0.0.7 | 2020年9月20日 |
---|---|
0.0.6 | 2020年9月10日 |
0.0.5 | 2020年8月29日 |
#35 in #required
每月下载 21 次
8KB
151 行代码(不含注释)
env-extractor
用法
提取环境变量作为 String 的基本示例
use env_extractor::{env_var, required};
fn load_path() -> required::Result<String> {
env_var("PATH").as_required()
}
使用自定义类型的另一个示例
fn load_my_path() -> required::Result<MyPath> {
// Note that this is exactly the same as load_path()
env_var("PATH").as_required()
}
如何使用内置的 std::str::FromStr
来表示转换
struct MyPath {
inner: String,
}
impl FromStr for MyPath {
type Err = <String as FromStr>::Err;
fn from_str(s: &str) -> Result<Self, Self::Err> {
Ok(MyPath {
inner: s.to_string(),
})
}
}
当然,required::Result
可以告诉我们当它不存在时键(当 std::env::VarError
不能)。
match load_my_path() {
Ok(path) => println!("path: {}", path.inner),
Err(NotPresent(key)) => println!("not present: {}", key),
Err(e) => println!("unexpected error: {:?}", e),
}
当处理可选值时,请使用 as_optional()
代替
let sample: Option<MyPath> = env_var("foooooo").as_optional()?;