auto-close elements with no child

Emmanuel Gil Peyrot created

Change summary

src/element.rs | 25 +++++++++++++++----------
1 file changed, 15 insertions(+), 10 deletions(-)

Detailed changes

src/element.rs 🔗

@@ -38,18 +38,23 @@ impl fmt::Debug for Element {
         for attr in &self.attributes {
             write!(fmt, " {}", attr)?;
         }
-        write!(fmt, ">")?;
-        for child in &self.children {
-            match *child {
-                Node::Element(ref e) => {
-                    write!(fmt, "{:?}", e)?;
-                },
-                Node::Text(ref s) => {
-                    write!(fmt, "{}", s)?;
-                },
+        if self.children.is_empty() {
+            write!(fmt, "/>")?;
+        }
+        else {
+            write!(fmt, ">")?;
+            for child in &self.children {
+                match *child {
+                    Node::Element(ref e) => {
+                        write!(fmt, "{:?}", e)?;
+                    },
+                    Node::Text(ref s) => {
+                        write!(fmt, "{}", s)?;
+                    },
+                }
             }
+            write!(fmt, "</{}>", self.name)?;
         }
-        write!(fmt, "</{}>", self.name)?;
         Ok(())
     }
 }