| Crates.io | confik-macros |
| lib.rs | confik-macros |
| version | 0.15.0 |
| created_at | 2023-07-12 13:57:42.788166+00 |
| updated_at | 2025-08-26 08:23:54.199992+00 |
| description | Macros for confik |
| homepage | |
| repository | https://github.com/x52dev/confik |
| max_upload_size | |
| id | 914534 |
| size | 65,759 |
confikThis crate provides a macro for creating configuration/settings structures and functions to read them from files and the environment.
Assume that config.toml contains
host = "google.com"
username = "root"
and the environment contains
PASSWORD=hunter2
Then:
use confik::{Configuration, EnvSource, FileSource};
#[derive(Debug, PartialEq, Configuration)]
struct Config {
host: String,
username: String,
#[confik(secret)]
password: String,
}
fn main() {
let config = Config::builder()
.override_with(FileSource::new("config.toml"))
.override_with(EnvSource::new().allow_secrets())
.try_build()
.unwrap();
assert_eq!(
config,
Config {
host: "google.com".to_string(),
username: "root".to_string(),
password: "hunter2".to_string(),
}
);
}
This project is licensed under either of
at your option.