diff options
| author | Laurenz <laurmaedje@gmail.com> | 2019-10-11 17:53:28 +0200 |
|---|---|---|
| committer | Laurenz <laurmaedje@gmail.com> | 2019-10-11 17:53:28 +0200 |
| commit | c0e4fd55e6fa738cfc5dcc851d0fc3ee2d0f2cd2 (patch) | |
| tree | e5531e605d0ab9e06dc950b4cd9b7a8caa116d34 /src/layout/boxed.rs | |
| parent | 8f788f9a4f5e970bbe6147987b711470d57aca8d (diff) | |
Create test runner which renders layouts to images 🗺
Diffstat (limited to 'src/layout/boxed.rs')
| -rw-r--r-- | src/layout/boxed.rs | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/src/layout/boxed.rs b/src/layout/boxed.rs index afcd5278..5bd909d4 100644 --- a/src/layout/boxed.rs +++ b/src/layout/boxed.rs @@ -1,5 +1,6 @@ //! Block-style layouting of boxes. +use std::io::{self, Write}; use crate::doc::{Document, Page, LayoutAction}; use crate::size::{Size, Size2D}; use super::{ActionList, LayoutSpace, Alignment, LayoutResult, LayoutError}; @@ -25,6 +26,16 @@ impl BoxLayout { }], } } + + /// Serialize this layout into a string representation. + pub fn serialize<W: Write>(&self, f: &mut W) -> io::Result<()> { + writeln!(f, "{:.4} {:.4}", self.dimensions.x.to_pt(), self.dimensions.y.to_pt())?; + for action in &self.actions { + action.serialize(f)?; + writeln!(f)?; + } + Ok(()) + } } /// The context for layouting boxes. |
