#env #variables #env-var #environment #extract #extractor #required

env-extractor

提取环境变量的模块

7 个版本

0.0.7 2020年9月20日
0.0.6 2020年9月10日
0.0.5 2020年8月29日

#35 in #required

每月下载 21

MIT/Apache

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()?;

无运行时依赖