diff options
Diffstat (limited to 'src/library/document.rs')
| -rw-r--r-- | src/library/document.rs | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/src/library/document.rs b/src/library/document.rs new file mode 100644 index 00000000..fe01d2df --- /dev/null +++ b/src/library/document.rs @@ -0,0 +1,16 @@ +use super::prelude::*; +use super::PageNode; + +/// The root layout node, a document consisting of top-level page runs. +#[derive(Debug, Hash)] +pub struct DocumentNode { + /// The page runs. + pub pages: Vec<PageNode>, +} + +impl DocumentNode { + /// Layout the document into a sequence of frames, one per page. + pub fn layout(&self, ctx: &mut LayoutContext) -> Vec<Rc<Frame>> { + self.pages.iter().flat_map(|node| node.layout(ctx)).collect() + } +} |
