From eb6b58f2a902a15d9f27213967a4bebe0d9de23c Mon Sep 17 00:00:00 2001 From: Noah Hellman Date: Sun, 15 Jan 2023 20:03:22 +0100 Subject: [PATCH] fixup! block attributes --- src/attr.rs | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/src/attr.rs b/src/attr.rs index 7b8b9e7..1499427 100644 --- a/src/attr.rs +++ b/src/attr.rs @@ -59,10 +59,27 @@ impl<'s> Attributes<'s> { }; let attrs = self.0.as_mut().unwrap(); - attrs.push((attr, val)); + if let Some(i) = attrs.iter().position(|(a, _)| *a == attr) { + let prev = &mut attrs[i].1; + if attr == "class" { + *prev = format!("{} {}", prev, val).into(); + } else { + *prev = val; + } + } else { + attrs.push((attr, val)); + } + } + + #[must_use] + pub fn is_empty(&self) -> bool { + if let Some(v) = &self.0 { + v.is_empty() + } else { + true + } } - #[cfg(test)] pub fn iter(&self) -> impl Iterator + '_ { self.0 .iter()