aboutsummaryrefslogtreecommitdiffstats
path: root/askama_derive/src/generator.rs
diff options
context:
space:
mode:
authorLibravatar René Kijewski <rene.kijewski@fu-berlin.de>2023-08-01 03:27:45 +0200
committerLibravatar Dirkjan Ochtman <dirkjan@ochtman.nl>2023-08-01 13:04:41 +0200
commit108c4a6a33a9eeda3ecf76e5e09da5ccb9b188e8 (patch)
tree2b730170125f4b42e05b4513d63701eeb1298820 /askama_derive/src/generator.rs
parent4f52dbe8be9746d1f1a2eab03e135c9003ef6dd3 (diff)
downloadaskama-108c4a6a33a9eeda3ecf76e5e09da5ccb9b188e8.tar.gz
askama-108c4a6a33a9eeda3ecf76e5e09da5ccb9b188e8.tar.bz2
askama-108c4a6a33a9eeda3ecf76e5e09da5ccb9b188e8.zip
parser: add type for `Node::Match`
Diffstat (limited to '')
-rw-r--r--askama_derive/src/generator.rs18
1 files changed, 11 insertions, 7 deletions
diff --git a/askama_derive/src/generator.rs b/askama_derive/src/generator.rs
index d29c4c3..60ffa27 100644
--- a/askama_derive/src/generator.rs
+++ b/askama_derive/src/generator.rs
@@ -2,7 +2,7 @@ use crate::config::{get_template_source, read_config_file, Config, WhitespaceHan
use crate::heritage::{Context, Heritage};
use crate::input::{Print, Source, TemplateInput};
use crate::CompileError;
-use parser::{Call, Cond, CondTest, Expr, Loop, Node, Parsed, Target, When, Whitespace, Ws};
+use parser::{Call, Cond, CondTest, Expr, Loop, Match, Node, Parsed, Target, Whitespace, Ws};
use proc_macro::TokenStream;
use quote::{quote, ToTokens};
@@ -644,8 +644,8 @@ impl<'a> Generator<'a> {
Node::Cond(ref conds, ws) => {
size_hint += self.write_cond(ctx, buf, conds, ws)?;
}
- Node::Match(ws1, ref expr, ref arms, ws2) => {
- size_hint += self.write_match(ctx, buf, ws1, expr, arms, ws2)?;
+ Node::Match(ref m) => {
+ size_hint += self.write_match(ctx, buf, m)?;
}
Node::Loop(ref loop_block) => {
size_hint += self.write_loop(ctx, buf, loop_block)?;
@@ -782,11 +782,15 @@ impl<'a> Generator<'a> {
&mut self,
ctx: &'a Context<'_>,
buf: &mut Buffer,
- ws1: Ws,
- expr: &Expr<'_>,
- arms: &'a [When<'_>],
- ws2: Ws,
+ m: &'a Match<'a>,
) -> Result<usize, CompileError> {
+ let Match {
+ ws1,
+ ref expr,
+ ref arms,
+ ws2,
+ } = *m;
+
self.flush_ws(ws1);
let flushed = self.write_buf_writable(buf)?;
let mut arm_sizes = Vec::new();