Easy HTTP configuration library.
`choices` is a library that lets you expose your application's configuration
over HTTP with a simple struct!
## Examples
Given the following code:
```no_run
use choices::Choices;
use lazy_static::lazy_static;
use std::sync::{Arc, Mutex};
#[derive(Choices)]
struct Config {
debug: bool,
id: Option,
log_file: String,
}
lazy_static! {
static ref CONFIG: Arc> = {
Arc::new(Mutex::new(Config {
debug: false,
id: Some(3),
log_file: "log.txt".to_string()
}))
};
}
#[tokio::main]
async fn main() {
CONFIG.run((std::net::Ipv4Addr::LOCALHOST, 8081)).await;
}
```
You can see all configuration fields at `localhost:8081/config`
and the individual fields' values at `localhost:8081/config/`\
A field's value can be changed with a `PUT`, for instance
`curl -X PUT localhost:8081/config/debug -d "true"`.