#env-var #serialization #deserialize #env #serde #config-file #error-value

serde-envfile

♻️ 反序列化和序列化环境变量

1个不稳定版本

0.1.0 2023年10月27日

#1101 in 编码

Download history 12/week @ 2024-04-07 1/week @ 2024-04-14 10/week @ 2024-04-21 26/week @ 2024-04-28 104/week @ 2024-05-05 33/week @ 2024-05-12 57/week @ 2024-05-19 34/week @ 2024-05-26 42/week @ 2024-06-02 118/week @ 2024-06-09 136/week @ 2024-06-16 236/week @ 2024-06-23 17/week @ 2024-06-30 282/week @ 2024-07-07 540/week @ 2024-07-14 532/week @ 2024-07-21

1,371 每月下载量
2 crates 中使用

MIT OR Apache-2.0 OR EUPL-1.2

35KB
952 代码行

serde-envfile

基于dotenvyenvycrate构建,serde-envfile支持从文件(from_fileto_file)、字符串(from_strto_string)或应用程序的环境(from_envto_env)中序列化和反序列化环境变量。

安装 ☁️

扩展你的Cargo.toml配置文件,将serde-envfile作为一个依赖项包括在内,或者使用Cargo包管理器安装此包。

cargo add serde-envfile

使用 🔨

use serde::{Deserialize, Serialize};
use serde_envfile::{Error, from_str, to_string};

#[derive(Debug, Deserialize, Serialize)]
struct Test {
    hello: String,
}

fn main() -> Result<(), Error> {
    let env = "HELLO=\"WORLD\"";
    let test: Test = from_str(env)?;
    let env = to_string(&test)?;

    println!("{}", env);

    Ok(())
}

引入了Value类型,serde-envfile提供了一种更灵活的方式来处理环境变量。

use serde_envfile::{to_string, Error, Value};

fn main() -> Result<(), Error> {
    let mut env = Value::new();
    env.insert("hello".into(), "world".into());
    let env = to_string(&env)?;

    println!("{}", env);

    Ok(())
}

依赖项

~2–2.8MB
~47K SLoC