summaryrefslogtreecommitdiff
path: root/src/eval/node.rs
diff options
context:
space:
mode:
authorLaurenz <laurmaedje@gmail.com>2021-12-15 20:27:41 +0100
committerLaurenz <laurmaedje@gmail.com>2021-12-15 20:27:41 +0100
commit2a3d0f4b390457174ed09347dd29e97ff9a783e4 (patch)
tree0e0634bff6b7f64131267f4cbe05651c1c91d900 /src/eval/node.rs
parent244ad386ec271ff86a2101eb4cc38d37a55552b9 (diff)
Set Rules Episode VII: The Set Awakens
Diffstat (limited to 'src/eval/node.rs')
-rw-r--r--src/eval/node.rs10
1 files changed, 10 insertions, 0 deletions
diff --git a/src/eval/node.rs b/src/eval/node.rs
index 5653beff..a04fe84b 100644
--- a/src/eval/node.rs
+++ b/src/eval/node.rs
@@ -36,6 +36,8 @@ pub enum Node {
Inline(PackedNode),
/// A block node.
Block(PackedNode),
+ /// A page node.
+ Page(PackedNode),
/// A sequence of nodes (which may themselves contain sequences).
Sequence(Vec<(Self, Styles)>),
}
@@ -214,6 +216,14 @@ impl Packer {
Node::Block(block) => {
self.push_block(block.styled(styles));
}
+ Node::Page(flow) => {
+ if self.top {
+ self.pagebreak();
+ self.pages.push(PageNode { child: flow, styles });
+ } else {
+ self.push_block(flow.styled(styles));
+ }
+ }
Node::Sequence(list) => {
// For a list of nodes, we apply the list's styles to each node
// individually.