1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
use std::fs;
use std::io::Read;
use clap::ArgMatches;
use serde::Deserialize;
pub fn read_for_str<T: for<'a> Deserialize<'a>>(name: &str) -> T {
let mut data = fs::File::open(name).expect("file not found");
let mut data_str = String::new();
data.read_to_string(&mut data_str).expect("read failed");
serde_yaml::from_str(data_str.as_str()).expect("parse yaml failed")
}
pub fn get_template_dir<'a>(matches: &'a ArgMatches, name: &str, default: &'a str) -> Option<&'a str> {
match matches.value_of(name) {
None => Option::from(default),
_ => matches.value_of(name),
}
}