From 2c7759c0d0534dd9903ebd97b13c4c44320a9aad Mon Sep 17 00:00:00 2001 From: max Date: Fri, 8 Dec 2023 14:40:24 +0200 Subject: Improve performance of `find_used_templates` Signed-off-by: max --- askama_derive/src/input.rs | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) (limited to 'askama_derive/src/input.rs') diff --git a/askama_derive/src/input.rs b/askama_derive/src/input.rs index 7314d2e..215d060 100644 --- a/askama_derive/src/input.rs +++ b/askama_derive/src/input.rs @@ -119,8 +119,13 @@ impl TemplateInput<'_> { while let Some(nodes) = nested.pop() { for n in nodes { let mut add_to_check = |path: PathBuf| -> Result<(), CompileError> { - let source = get_template_source(&path)?; - check.push((path, source)); + if !map.contains_key(&path) { + // Add a dummy entry to `map` in order to prevent adding `path` + // multiple times to `check`. + map.insert(path.clone(), Parsed::default()); + let source = get_template_source(&path)?; + check.push((path, source)); + } Ok(()) }; -- cgit