From d1f59f4f818f70e8f8580324c9e76307d236f353 Mon Sep 17 00:00:00 2001 From: Filipe Rodrigues Date: Fri, 6 Dec 2024 10:15:25 +0000 Subject: [PATCH] Fixed `dynatos_html::{html, html_file}` not allowing arguments on their own. --- dynatos-html-macros/src/lib.rs | 24 +++++++++++++++--------- 1 file changed, 15 insertions(+), 9 deletions(-) diff --git a/dynatos-html-macros/src/lib.rs b/dynatos-html-macros/src/lib.rs index 4abe624..ff23872 100644 --- a/dynatos-html-macros/src/lib.rs +++ b/dynatos-html-macros/src/lib.rs @@ -6,7 +6,6 @@ // Imports use { dynatos_html_parser::{XHtml, XHtmlNode}, - itertools::Itertools, proc_macro::TokenStream, std::{ fs, @@ -227,17 +226,24 @@ impl Node { }); }; - let (cons, args) = args - .into_iter() - .partition_map::, Vec<_>, _, _, _>(|arg| match arg { - TextArg::Cons(text) => itertools::Either::Left(text), - TextArg::Argument(arg) => itertools::Either::Right(arg), - }); + // Otherwise, we'll format a string with dynamic text + let fmt = args + .iter() + .map(|arg| match arg { + TextArg::Cons(text) => text, + TextArg::Argument(_) => "{}", + }) + .collect::(); - let fmt = cons.into_iter().join("{}"); let args = args .into_iter() - .map(|arg| syn::parse_str::(arg).expect("Unable to parse argument expression")) + .filter_map(|arg| match arg { + TextArg::Cons(_) => None, + TextArg::Argument(arg) => { + let arg = syn::parse_str::(arg).expect("Unable to parse argument expression"); + Some(arg) + }, + }) .collect::>(); Self {