阅读量:196
Rust 的 config 库支持多种配置文件格式,包括但不限于以下几种:
- YAML
- JSON
- TOML
- INI
- RON
- JSON5
- 自定义格式(通过
Formattrait 定义)
如何使用 config 库
- 添加依赖:在
Cargo.toml文件中添加config和serde依赖。 - 创建配置文件:在项目根目录下创建配置文件,例如
config/default.yml。 - 定义配置结构体:使用
serde的Deserialize特性定义与配置文件结构对应的 Rust 结构体。 - 加载配置文件:使用
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 {
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 项目中加载和管理不同格式的配置文件。