温馨提示×

rust config支持哪些格式

小樊
83
2024-12-04 05:46:50
栏目: 编程语言

Rust 的 config 库支持多种配置文件格式,包括但不限于以下几种:

  • YAML
  • JSON
  • TOML
  • INI
  • RON
  • JSON5
  • 自定义格式(通过 Format trait 定义)

如何使用 config

  1. 添加依赖:在 Cargo.toml 文件中添加 configserde 依赖。
  2. 创建配置文件:在项目根目录下创建配置文件,例如 config/default.yml
  3. 定义配置结构体:使用 serdeDeserialize 特性定义与配置文件结构对应的 Rust 结构体。
  4. 加载配置文件:使用 Config::builder() 构建配置加载器,读取并反序列化配置文件到定义的结构体中。

示例代码

以下是一个简单的示例,展示如何使用 config 库加载和解析 YAML 配置文件:

use config::{Config, ConfigError, File};
use serde::Deserialize;

#[derive(Debug, Deserialize)]
pub struct ServerConfig {
    pub host: String,
    pub port: u16,
}

#[derive(Debug, Deserialize)]
pub struct DatabaseConfig {
    pub user: String,
    pub password: String,
    pub name: String,
}

#[derive(Debug, Deserialize)]
pub struct AppConfig {
    pub server: ServerConfig,
    pub database: DatabaseConfig,
}

fn load_config() -> Result<AppConfig, ConfigError> {
    let mut config = Config::builder()
        .add_source(File::with_name("src/config/default.yml").required(true))
        .build()?;
    config.try_deserialize(&AppConfig::default())
}

fn main() -> Result<(), Box<dyn std::error::Error>> {
    let config = load_config()?;
    println!("Loaded configuration: {:#?}", config);
    Ok(())
}

通过上述步骤和示例代码,你可以轻松地在 Rust 项目中加载和管理不同格式的配置文件。

0