amber_client/
app_config.rs1use config::{Config, ConfigError, File};
2use serde::Deserialize;
3
4#[derive(Debug, Deserialize)]
5#[allow(unused)]
6pub struct AmberConfig {
7 pub base_url: String,
8}
9
10#[derive(Debug, Deserialize)]
11#[allow(unused)]
12pub struct ApiToken {
13 pub name: String,
14 pub psk: String,
15}
16
17#[derive(Debug, Deserialize)]
18#[allow(unused)]
19pub struct AppConfig {
20 pub amberconfig: AmberConfig,
21 pub userconfig: UserConfig,
22 pub apitoken: ApiToken,
23}
24
25#[derive(Debug, Deserialize)]
26#[allow(unused)]
27pub struct UserConfig {
28 pub state: String,
29}
30
31impl AppConfig {
32 pub async fn get(app_config_file: String) -> Result<Self, ConfigError> {
33 let config = Config::builder()
34 .add_source(File::with_name(&app_config_file))
35 .build()?;
36
37 config.try_deserialize()
38 }
39}