use crate::exec::{FontState, LineState}; use crate::layout::Paint; use super::*; /// `font`: Configure the font. pub fn font(_: &mut EvalContext, args: &mut FuncArgs) -> TypResult { let size = args.named::("size")?.or_else(|| args.eat()); let style = args.named("style")?; let weight = args.named("weight")?; let stretch = args.named("stretch")?; let top_edge = args.named("top-edge")?; let bottom_edge = args.named("bottom-edge")?; let fill = args.named("fill")?; let list = args.named("family")?.or_else(|| { let families: Vec<_> = args.all().collect(); (!families.is_empty()).then(|| FontDef(Rc::new(families))) }); let serif = args.named("serif")?; let sans_serif = args.named("sans-serif")?; let monospace = args.named("monospace")?; let body = args.expect::