diff options
Diffstat (limited to 'src/doc.rs')
| -rw-r--r-- | src/doc.rs | 13 |
1 files changed, 13 insertions, 0 deletions
@@ -1,5 +1,6 @@ //! Representation of typesetted documents. +use std::io::{self, Write}; use crate::size::{Size, Size2D}; @@ -31,3 +32,15 @@ pub enum LayoutAction { /// Write text starting at the current position. WriteText(String), } + +impl LayoutAction { + /// Serialize this layout action into a string representation. + pub fn serialize<W: Write>(&self, f: &mut W) -> io::Result<()> { + use LayoutAction::*; + match self { + MoveAbsolute(s) => write!(f, "m {:.4} {:.4}", s.x.to_pt(), s.y.to_pt()), + SetFont(i, s) => write!(f, "f {} {}", i, s), + WriteText(s) => write!(f, "w {}", s), + } + } +} |
