3 个不稳定版本
使用旧的 Rust 2015
0.1.1 | 2018年1月20日 |
---|---|
0.1.0 | 2018年1月20日 |
0.0.1 | 2017年11月25日 |
#871 in 配置
703 每月下载量
用于 5 个 crate(3 直接使用)
28KB
627 行
配置管理。
本 crate 的目的是自动弥合从环境配置到您的项目的差距。通过为您配置的配置实现 Configure
特性,您可以在运行时自动管理配置。
实现 Configure
此库提供了一种自定义 derive,允许您推导 Configure
特性。它要求您的类型实现 Deserialize
。
我们建议您按照以下步骤实现配置
- 为您类型实现
Default
,为每个配置字段提供默认值。 - 为您类型推导
Deserialize
和Configure
。使用#[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