40 lines
No EOL
898 B
Rust
40 lines
No EOL
898 B
Rust
use serde::Deserialize;
|
|
|
|
#[derive(Deserialize)]
|
|
struct ConfigFile {
|
|
pub name: String,
|
|
pub nats_cert: String,
|
|
pub nats_key: String,
|
|
pub nats_url: String,
|
|
}
|
|
|
|
#[derive(Clone)]
|
|
pub struct LypheDBConfig {
|
|
pub name: String,
|
|
pub nats_cert: String,
|
|
pub nats_key: String,
|
|
pub nats_url: String,
|
|
}
|
|
|
|
pub fn load_config(path: &str) -> LypheDBConfig {
|
|
let s = std::fs::read_to_string(path);
|
|
if let Err(e) = s {
|
|
panic!("failed to read config file: {}", e);
|
|
}
|
|
let s = s.unwrap();
|
|
let cnf = toml::from_str::<ConfigFile>(&s);
|
|
if let Err(e) = cnf {
|
|
panic!("failed to parse config file: {}", e);
|
|
}
|
|
let cnf = cnf.unwrap();
|
|
|
|
// quick checks and conversions
|
|
let mut config = LypheDBConfig {
|
|
name: cnf.name,
|
|
nats_cert: cnf.nats_cert,
|
|
nats_key: cnf.nats_key,
|
|
nats_url: cnf.nats_url,
|
|
};
|
|
|
|
config
|
|
} |