Crate quantum_config

Source
Expand description

§Quantum Config

A powerful and flexible configuration management library for Rust applications.

Quantum Config provides a unified interface for loading configuration from multiple sources including files, environment variables, and command-line arguments, with automatic type conversion and validation.

§Features

  • Multiple Configuration Sources: Load from TOML, JSON, YAML files, environment variables, and CLI arguments
  • Hierarchical Configuration: Support for nested configuration structures
  • Type Safety: Automatic deserialization with compile-time type checking
  • Flexible Priority: Configurable precedence for different configuration sources
  • Derive Macros: Simple #[derive(Config)] for automatic configuration management
  • Async Support: Optional async configuration loading
  • Template Generation: Generate configuration file templates

§Quick Start

use quantum_config::{Config, Deserialize, Serialize};

#[derive(Config, Default, Deserialize, Serialize)]
struct AppConfig {
    host: String,
    port: u16,
    debug: bool,
}

fn main() -> Result<(), Box<dyn std::error::Error>> {
    let config = AppConfig::load()?;
    println!("Server running on {}:{}", config.host, config.port);
    Ok(())
}

Re-exports§

pub use error::ConfigDirType;
pub use error::QuantumConfigError;
pub use meta::ClapAttrsMeta;
pub use meta::FieldMeta;
pub use meta::QuantumConfigAppMeta;
pub use meta::StructMeta;
pub use paths::add_specified_config_file;
pub use paths::resolve_config_files;
pub use paths::ConfigFilePath;
pub use paths::ConfigFileType;
pub use ::serde;
pub use ::toml;

Modules§

error
Quantum Config 错误处理模块
meta
Quantum Config 元数据结构模块
path_conversion
Path conversion utilities for cross-platform path handling.
paths
Quantum Config 路径解析模块
providers
配置提供器模块

Structs§

Arg
The abstract representation of a command line argument. Used to set all the options and relationships that define a valid argument for the program.
ArgMatches
Container for parse results.
Command
Build a command-line interface.
Figment
Combiner of Providers for configuration value extraction.

Enums§

ArgAction
Behavior of arguments when they are encountered while parsing

Traits§

Deserialize
A data structure that can be deserialized from any data format supported by Serde.
Serialize
A data structure that can be serialized into any data format supported by Serde.

Derive Macros§

Config
为结构体自动实现配置管理功能的派生宏
Deserialize
Serialize