#directory #configuration #provider #values #file-format #figment

figment-directory

将配置值分割成多个文件存储在目录中的Figment提供程序,支持任何格式

1个不稳定版本

0.1.0 2024年5月19日

配置中排名第364

BSD-3-Clause

25KB
271行代码(不包括注释)

Figment Directory ci.svg crates.io docs.rs

将配置值分割成多个文件存储在目录中的Figment提供程序,支持任何格式

use serde::Deserialize;
use figment::{Figment, providers::{Env, Format, Toml}};
use figment_directory::FormatExt as _;

#[derive(Deserialize)]
struct Config {
  database: DatabaseConfig,
  pubsub: PubsubConfig
}

#[derive(Deserialize)]
struct DatabaseConfig {
  url: String,
}

#[derive(Deserialize)]
struct PubsubConfig {
  url: String,
}

let config: Config = Figment::new()
    .merge(Toml::directory("config"))
    .extract()?;

目录结构

  • config
    • database.toml
    • pubsub.toml
# database.toml
url = "some/url"
# pubsub.toml
url = "some/url"

概述

此crate包含为Figment提供的Directory提供程序,允许加载包含(可能嵌套的)文件的一致文件格式的目录中的配置值。它被包裹在像figment::providers::Jsonfigment::providers::Toml这样的Format实现中。

如果您有很多配置值并希望使用文件系统来组织它们,这可能会很有用。

有关详细的使用指南和更多信息,请参阅文档

用法

将以下内容添加到您的Cargo.toml

[dependencies]
figment = { version = "0.10" }
figment-directory = { version = "0.1" }

许可

figment_directory根据BSD-3-Clause许可证许可。

依赖关系

~435–700KB
~12K 行代码(约额外代码行数)