summaryrefslogtreecommitdiff
path: root/src/library/page.rs
diff options
context:
space:
mode:
authorLaurenz <laurmaedje@gmail.com>2021-11-22 14:30:43 +0100
committerLaurenz <laurmaedje@gmail.com>2021-11-29 16:47:35 +0100
commited50661378f356e02c6ec943bc4840091d33cfbd (patch)
tree7ed51339ea1a4b7ccc4308c902b36e86f9c07e26 /src/library/page.rs
parentcef46e6c40fed0089a20e44ff2f251c06878891c (diff)
Castable optional and smart values
Diffstat (limited to 'src/library/page.rs')
-rw-r--r--src/library/page.rs24
1 files changed, 12 insertions, 12 deletions
diff --git a/src/library/page.rs b/src/library/page.rs
index 20871bd9..b256a521 100644
--- a/src/library/page.rs
+++ b/src/library/page.rs
@@ -12,13 +12,13 @@ pub fn page(ctx: &mut EvalContext, args: &mut Args) -> TypResult<Value> {
let paper = args.named::<Paper>("paper")?.or_else(|| args.find());
let width = args.named("width")?;
let height = args.named("height")?;
+ let flip = args.named("flip")?;
let margins = args.named("margins")?;
let left = args.named("left")?;
let top = args.named("top")?;
let right = args.named("right")?;
let bottom = args.named("bottom")?;
- let flip = args.named("flip")?;
- let fill = args.named("fill")?.map(Paint::Solid);
+ let fill = args.named("fill")?;
ctx.template.modify(move |style| {
let page = style.page_mut();
@@ -33,37 +33,37 @@ pub fn page(ctx: &mut EvalContext, args: &mut Args) -> TypResult<Value> {
page.size.w = width;
}
+ if flip.unwrap_or(false) {
+ std::mem::swap(&mut page.size.w, &mut page.size.h);
+ }
+
if let Some(height) = height {
page.class = PaperClass::Custom;
page.size.h = height;
}
if let Some(margins) = margins {
- page.margins = Sides::splat(Some(margins));
+ page.margins = Sides::splat(margins);
}
if let Some(left) = left {
- page.margins.left = Some(left);
+ page.margins.left = left;
}
if let Some(top) = top {
- page.margins.top = Some(top);
+ page.margins.top = top;
}
if let Some(right) = right {
- page.margins.right = Some(right);
+ page.margins.right = right;
}
if let Some(bottom) = bottom {
- page.margins.bottom = Some(bottom);
- }
-
- if flip.unwrap_or(false) {
- std::mem::swap(&mut page.size.w, &mut page.size.h);
+ page.margins.bottom = bottom;
}
if let Some(fill) = fill {
- page.fill = Some(fill);
+ page.fill = fill;
}
});