# cdumay_config
[](./LICENSE)
[](https://crates.io/crates/cdumay_config)
[](https://docs.rs/cdumay_config)
[](https://github.com/cdumay/cdumay_config)
A flexible configuration management library that provides a trait-based approach for handling
key-value data with support of multiple serialization formats.
## Features
- Generic configuration management through the `Manager` trait
- Support for multiple serialization formats (with feature flags):
- JSON (default)
- TOML (feature: "toml")
- YAML (feature: "yaml")
- XML (feature: "xml")
- Type-safe error handling with the `cdumay_core::Error` struct
## Example Usage
```rust
#[derive(Debug, serde::Serialize, serde::Deserialize)]
pub struct DatabaseConfig {
pub user: String,
pub password: String,
pub database: String,
}
fn main() -> cdumay_core::Result<()> {
let context = std::collections::BTreeMap::new();
let config = DatabaseConfig {
user: "john".to_string(),
password: "smith".to_string(),
database: "example".to_string()
};
let _ = cdumay_config::write_config(
"locker-db.json",
Some(cdumay_config::ContentFormat::JSON),
config,
&context
)?;
Ok(())
}
```