diff options
author | René Kijewski <rene.kijewski@fu-berlin.de> | 2023-08-01 03:27:45 +0200 |
---|---|---|
committer | Dirkjan Ochtman <dirkjan@ochtman.nl> | 2023-08-01 13:04:41 +0200 |
commit | 108c4a6a33a9eeda3ecf76e5e09da5ccb9b188e8 (patch) | |
tree | 2b730170125f4b42e05b4513d63701eeb1298820 /askama_derive/src/generator.rs | |
parent | 4f52dbe8be9746d1f1a2eab03e135c9003ef6dd3 (diff) | |
download | askama-108c4a6a33a9eeda3ecf76e5e09da5ccb9b188e8.tar.gz askama-108c4a6a33a9eeda3ecf76e5e09da5ccb9b188e8.tar.bz2 askama-108c4a6a33a9eeda3ecf76e5e09da5ccb9b188e8.zip |
parser: add type for `Node::Match`
Diffstat (limited to 'askama_derive/src/generator.rs')
-rw-r--r-- | askama_derive/src/generator.rs | 18 |
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(); |