1use serde::Serialize;
4
5use crate::models::entry::Entry;
6
7use super::annotation::AnnotationContext;
8use super::book::BookContext;
9
10#[derive(Debug, Serialize)]
14pub struct EntryContext<'a> {
15 #[allow(missing_docs)]
16 pub book: BookContext<'a>,
17 #[allow(missing_docs)]
18 pub annotations: Vec<AnnotationContext<'a>>,
19}
20
21impl<'a> From<&'a Entry> for EntryContext<'a> {
22 fn from(entry: &'a Entry) -> Self {
23 Self {
24 book: BookContext::from(&entry.book),
25 annotations: entry
26 .annotations
27 .iter()
28 .map(AnnotationContext::from)
29 .collect(),
30 }
31 }
32}