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 304/week @ 2024-03-14 222/week @ 2024-03-21 438/week @ 2024-03-28 337/week @ 2024-04-04 451/week @ 2024-04-11 460/week @ 2024-04-18 192/week @ 2024-04-25 204/week @ 2024-05-02 167/week @ 2024-05-09 167/week @ 2024-05-16 142/week @ 2024-05-23 324/week @ 2024-05-30 161/week @ 2024-06-06 268/week @ 2024-06-13 150/week @ 2024-06-20 103/week @ 2024-06-27

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