1
use crate::server::{
2
    dataset::{Dataset, PredicateObject},
3
    DatasetSummary, DatasetVersionSummary,
4
};
5
use askama::Template;
6
use sophia::api::{term::IriRef, MownStr};
7
use std::collections::BTreeSet;
8

            
9
2
#[derive(Template)]
10
2
#[template(path = "index.html")]
11
pub(crate) struct IndexTemplate<'a> {
12
    pub datasets: &'a [DatasetSummary<'a>],
13
}
14

            
15
1
#[derive(Template)]
16
1
#[template(path = "dataset.html")]
17
pub(crate) struct DatasetTemplate<'a> {
18
    pub dataset: &'a Dataset,
19
    pub versions: &'a [DatasetVersionSummary],
20
}
21

            
22
1
#[derive(Template)]
23
1
#[template(path = "version.html")]
24
pub(crate) struct VersionTemplate<'a> {
25
    pub dataset: &'a DatasetSummary<'a>,
26
    pub version: &'a DatasetVersionSummary,
27
    pub subjects: BTreeSet<&'a IriRef<MownStr<'a>>>,
28
}
29

            
30
5
#[derive(Template)]
31
1
#[template(path = "subject.html")]
32
pub(crate) struct SubjectTemplate<'a> {
33
    pub dataset: &'a DatasetSummary<'a>,
34
    pub subject: String,
35
    pub version: &'a DatasetVersionSummary,
36
    pub pos: Vec<PredicateObject<'a>>,
37
}