use crate::util::RawTask;
pub trait Adapter: Send + 'static {
type Line: Send + Clone;
type Error;
fn serialize(&self, line: &Self::Line) -> Result<Vec<u8>, Self::Error>;
fn deserialize(&self, raw: &[u8]) -> Result<Self::Line, Self::Error>;
fn to_entry(&self, line: Self::Line) -> Result<RawTask, Self::Error>;
fn from_entry(entry: &RawTask) -> Result<Self::Line, Self::Error>;
fn is_header(&self, _raw: &[u8]) -> bool {
false
}
fn header(&self, _entries: &Vec<RawTask>) -> Option<Vec<u8>> {
None
}
}