extern crate failure;
extern crate random_access_storage as ras;
use self::ras::RandomAccessMethods;
use super::Storage;
use failure::Error;
use std::fmt::Debug;
pub trait Persist<T>
where
T: RandomAccessMethods + Debug,
{
fn from_bytes(index: usize, buf: &[u8]) -> Self;
fn to_vec(&self) -> Result<Vec<u8>, Error>;
fn store(&self, index: usize, store: Storage<T>) -> Result<(), Error>;
}