use protobuf::MessageFull;
pub trait PathInfo {
const PATH: &'static str;
}
pub trait ProtoLocal: PathInfo + MessageFull {
fn write(self) {
let path = std::path::PathBuf::from(Self::PATH);
let mut file = std::fs::File::create(path).unwrap();
self.write_to_writer(&mut file).unwrap();
}
fn read() -> Self {
let path = std::path::PathBuf::from(Self::PATH);
let mut file = std::fs::File::open(path).unwrap();
Self::parse_from_reader(&mut file).unwrap()
}
fn remove() {
let path = std::path::PathBuf::from(Self::PATH);
std::fs::remove_file(path).ok(); }
}
impl<T> ProtoLocal for T where T: PathInfo + MessageFull {}