use doc::{Data, Document, PrimaryData};
use error::Error;
use query::Query;
pub trait Render<T: PrimaryData> {
fn render(self, query: Option<&Query>) -> Result<Document<T>, Error>;
}
impl<D, T> Render<D> for Option<T>
where
D: PrimaryData,
T: Render<D> + Sized,
{
fn render(self, query: Option<&Query>) -> Result<Document<D>, Error> {
match self {
Some(value) => value.render(query),
None => Ok(Document::Ok {
data: Data::Member(Box::new(None)),
included: Default::default(),
jsonapi: Default::default(),
links: Default::default(),
meta: Default::default(),
}),
}
}
}