This repository has been archived on 2023-03-26. You can view files and clone it, but cannot push or open issues or pull requests.
md-pdf-rs/src/config/mod.rs
2017-07-19 21:23:59 +01:00

35 lines
822 B
Rust

use serde_yaml;
use serde_yaml::Value;
use std::path::PathBuf;
use std::collections::HashMap;
pub mod read;
pub mod validate;
pub mod consts;
#[derive(Debug, Serialize, Deserialize, Default)]
pub struct Config {
input: Vec<PathBuf>,
output: HashMap<String, PathBuf>,
title: String
}
impl Config {
fn new(raw: Value) -> Config {
return Config {
input: read::get_input_files(&raw),
output: read::get_output_files(&raw),
title: read::get_string(&raw, "title"),
..Default::default()
};
}
}
pub fn get_config() -> Config {
let config_str = read::read();
let config_value: Value = serde_yaml::from_str(&config_str).unwrap();
validate::validate(&config_value).expect("Validation Error");
return Config::new(config_value);
}