use serde::de::DeserializeOwned;
use serde::ser::Serialize;
use serde_json::{from_value, to_value};
use ::document::*;
use std::marker::Sized;
pub trait Model<T: Serialize + DeserializeOwned + Sized> {
fn from_document(d: Document) -> T {
from_value(d.get_data()).unwrap()
}
fn to_document(&self) -> Document where Self: Serialize {
Document::new(to_value(self).unwrap())
}
}