use settingsfile::{ Format, SettingsRaw, SupportedType };
use serde;
use failure::Error;
use toml;
#[derive(Clone)]
pub struct Configuration {
}
impl Format for Configuration {
fn filename(&self) -> String { "lovepack".to_string() }
fn folder(&self) -> String { ".lovepack".to_string() }
fn extension(&self) -> Option<String> { Some("toml".to_string()) }
fn from_str<T>(&self,buffer:&str) -> Result<SettingsRaw,Error>
where T : Format + Clone
{
match toml::de::from_str(&buffer) {
Ok(result) => Ok(result),
Err(error) => Err(format_err!("{}",error)),
}
}
fn to_string<T:Sized>(&self,object:&T) -> Result<String,Error>
where T : SupportedType + serde::ser::Serialize,
{
match toml::ser::to_string(object) {
Ok(result) => Ok(result),
Err(error) => Err(format_err!("{}",error)),
}
}
}