use std::io::{Read, Write};
use std::path::Path;
use serde::{Deserialize, Serialize};
use toml;
use Result;
pub trait FromToml: for<'a> Deserialize<'a> {
fn from_toml_file<P: AsRef<Path>>(path: P) -> Result<Self> {
track!(::from_toml_file(path))
}
fn from_toml_reader<R: Read>(reader: R) -> Result<Self> {
track!(::from_toml_reader(reader))
}
fn from_toml_str(toml: &str) -> Result<Self> {
track!(::from_toml_str(toml))
}
fn from_toml(toml: toml::Value) -> Result<Self> {
track!(::from_toml(toml))
}
}
pub trait ToToml: Serialize {
fn to_toml_file<P: AsRef<Path>>(&self, path: P) -> Result<()> {
track!(::to_toml_file(self, path))
}
fn to_toml_writer<W: Write>(&self, writer: W) -> Result<()> {
track!(::to_toml_writer(self, writer))
}
fn to_toml_string(&self) -> Result<String> {
track!(::to_toml_string(self))
}
fn to_toml(&self) -> Result<toml::Value> {
track!(::to_toml(self))
}
}