3 个不稳定版本

使用旧的 Rust 2015

0.1.1 2018年1月20日
0.1.0 2018年1月20日
0.0.1 2017年11月25日

#871 in 配置

Download history · Rust 包仓库 304/week @ 2024-03-14 · Rust 包仓库 222/week @ 2024-03-21 · Rust 包仓库 438/week @ 2024-03-28 · Rust 包仓库 337/week @ 2024-04-04 · Rust 包仓库 451/week @ 2024-04-11 · Rust 包仓库 460/week @ 2024-04-18 · Rust 包仓库 192/week @ 2024-04-25 · Rust 包仓库 204/week @ 2024-05-02 · Rust 包仓库 167/week @ 2024-05-09 · Rust 包仓库 167/week @ 2024-05-16 · Rust 包仓库 142/week @ 2024-05-23 · Rust 包仓库 324/week @ 2024-05-30 · Rust 包仓库 161/week @ 2024-06-06 · Rust 包仓库 268/week @ 2024-06-13 · Rust 包仓库 150/week @ 2024-06-20 · Rust 包仓库 103/week @ 2024-06-27 · Rust 包仓库

703 每月下载量
用于 5 crate(3 直接使用)

MIT/Apache

28KB
627

配置管理。

本 crate 的目的是自动弥合从环境配置到您的项目的差距。通过为您配置的配置实现 Configure 特性,您可以在运行时自动管理配置。

实现 Configure

此库提供了一种自定义 derive,允许您推导 Configure 特性。它要求您的类型实现 Deserialize

我们建议您按照以下步骤实现配置

  1. 为您类型实现 Default,为每个配置字段提供默认值。
  2. 为您类型推导 DeserializeConfigure。使用 #[serde(default)] 属性在可配置值未设置时回退到默认实现。

例如

#[macro_use]
extern crate configure;
extern crate serde;
#[macro_use]
extern crate serde_derive;

use std::net::SocketAddr;
use std::path::PathBuf;

#[derive(Deserialize, Configure)]
#[serde(default)]
pub struct Config {
    addr: SocketAddr,
    tls_cert: Option<PathBuf>,
}

impl Default for Config {
    fn default() -> Config {
        Config {
            addr: "127.0.0.1:7878".parse().unwrap(),
            tls_cert: None,
        }
    }
}

使用此代码,您可以调用 Config::generate 从环境变量中提取配置,如果最终用户没有为其设置自定义配置,则回退到这些默认值。

依赖项

~3MB
~61K SLoC