From 2ee5810fecb96a8d4e0d078faecc8c91096d6881 Mon Sep 17 00:00:00 2001 From: Laurenz Date: Mon, 6 Jan 2020 12:41:42 +0100 Subject: =?UTF-8?q?Asyncify=20font=20loading=20=F0=9F=AA=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/library/align.rs | 2 +- src/library/boxed.rs | 2 +- src/library/direction.rs | 2 +- src/library/mod.rs | 12 +++++++++--- 4 files changed, 12 insertions(+), 6 deletions(-) (limited to 'src/library') diff --git a/src/library/align.rs b/src/library/align.rs index 03d905cd..6114c3a3 100644 --- a/src/library/align.rs +++ b/src/library/align.rs @@ -28,7 +28,7 @@ function! { } match &self.body { - Some(body) => vec![AddMultiple(layout(&body, ctx)?)], + Some(body) => vec![AddMultiple(layout(&body, ctx).await?)], None => vec![SetAlignment(ctx.alignment)], } } diff --git a/src/library/boxed.rs b/src/library/boxed.rs index a4d059cb..da06a371 100644 --- a/src/library/boxed.rs +++ b/src/library/boxed.rs @@ -46,7 +46,7 @@ function! { ctx.spaces = smallvec![space]; - match layout(&self.body, ctx) { + match layout(&self.body, ctx).await { Ok(layouts) => return Ok(vec![AddMultiple(layouts)]), Err(err) => error = Some(err), } diff --git a/src/library/direction.rs b/src/library/direction.rs index a0992075..39ac2ccd 100644 --- a/src/library/direction.rs +++ b/src/library/direction.rs @@ -36,7 +36,7 @@ function! { } match &self.body { - Some(body) => vec![AddMultiple(layout(&body, ctx)?)], + Some(body) => vec![AddMultiple(layout(&body, ctx).await?)], None => vec![Command::SetAxes(ctx.axes)], } } diff --git a/src/library/mod.rs b/src/library/mod.rs index ac1ac338..513590eb 100644 --- a/src/library/mod.rs +++ b/src/library/mod.rs @@ -55,19 +55,25 @@ function! { #[derive(Debug, PartialEq)] pub struct FontFamilyFunc { body: Option, - family: String, + list: Vec, } parse(args, body, ctx, meta) { FontFamilyFunc { body: parse!(optional: body, ctx), - family: args.get_pos::()?, + list: { + args.pos().map(|arg| match arg.v { + Expression::Str(s) | + Expression::Ident(Ident(s)) => Ok(s.to_lowercase()), + _ => error!("expected identifier or string"), + }).collect::>>()? + } } } layout(self, ctx) { let mut style = ctx.style.text.clone(); - style.fallback.list = vec![self.family.clone()]; + style.fallback.list = self.list.clone(); styled(&self.body, &ctx, style) } } -- cgit v1.2.3