diff options
| author | Laurenz <laurmaedje@gmail.com> | 2021-12-22 19:04:35 +0100 |
|---|---|---|
| committer | Laurenz <laurmaedje@gmail.com> | 2021-12-22 19:19:32 +0100 |
| commit | 438255519e88bb790480306b9a9b452aaf054519 (patch) | |
| tree | badd3076f6146cec34c55764600df5124c408521 /src/eval/mod.rs | |
| parent | 11565a40b315212474f52eb576a9fd92b11f1132 (diff) | |
Review One: A Set Rules Story
Diffstat (limited to 'src/eval/mod.rs')
| -rw-r--r-- | src/eval/mod.rs | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/src/eval/mod.rs b/src/eval/mod.rs index d05f2ddf..17cc46ef 100644 --- a/src/eval/mod.rs +++ b/src/eval/mod.rs @@ -167,8 +167,10 @@ impl Eval for Markup { fn eval(&self, ctx: &mut EvalContext) -> TypResult<Self::Output> { let prev = mem::take(&mut ctx.styles); - let mut seq = vec![]; - for piece in self.nodes() { + let nodes = self.nodes(); + let upper = nodes.size_hint().1.unwrap_or_default(); + let mut seq = Vec::with_capacity(upper); + for piece in nodes { seq.push((piece.eval(ctx)?, ctx.styles.clone())); } ctx.styles = prev; @@ -468,11 +470,9 @@ impl Eval for CallExpr { } Value::Class(class) => { - let mut styles = Styles::new(); - class.set(&mut styles, &mut args)?; let node = class.construct(ctx, &mut args)?; args.finish()?; - Ok(Value::Node(node.styled(styles))) + Ok(Value::Node(node)) } v => bail!( @@ -651,7 +651,7 @@ impl Eval for SetExpr { let class = self.class(); let class = class.eval(ctx)?.cast::<Class>().at(class.span())?; let mut args = self.args().eval(ctx)?; - class.set(&mut ctx.styles, &mut args)?; + class.set(&mut args, &mut ctx.styles)?; args.finish()?; Ok(Value::None) } |
