coil_template/model/
requests.rs1use super::*;
2
3#[derive(Debug, Clone, PartialEq, Eq)]
4pub enum SlotFill {
5 Template(TemplateSelector),
6 Nodes(Vec<Node>),
7}
8
9#[derive(Debug, Clone, PartialEq, Eq)]
10pub struct DocumentRenderRequest {
11 pub(crate) layout: TemplateSelector,
12 pub(crate) model: RenderModel,
13 pub(crate) slots: BTreeMap<SlotName, SlotFill>,
14}
15
16impl DocumentRenderRequest {
17 pub fn new(layout: TemplateSelector, model: RenderModel) -> Self {
18 Self {
19 layout,
20 model,
21 slots: BTreeMap::new(),
22 }
23 }
24
25 pub fn with_slot_fill(mut self, slot: SlotName, fill: SlotFill) -> Self {
26 self.slots.insert(slot, fill);
27 self
28 }
29}
30
31#[derive(Debug, Clone, PartialEq, Eq)]
32pub struct FragmentRenderRequest {
33 pub(crate) fragment: TemplateSelector,
34 pub(crate) model: RenderModel,
35}
36
37impl FragmentRenderRequest {
38 pub fn new(fragment: TemplateSelector, model: RenderModel) -> Self {
39 Self { fragment, model }
40 }
41}