1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39
use std::collections::HashMap; #[cfg(feature = "json")] mod json; #[cfg(feature = "parse")] mod parse; #[cfg(feature = "print")] mod print; #[cfg(feature = "render")] mod render; #[derive(Debug, Default)] pub struct Node<T> { tag: String, attributes: HashMap<String, String>, children: Vec<T>, } impl<T> Node<T> { pub fn new(tag: String) -> Self { Self::from(tag) } } impl<T> From<String> for Node<T> { fn from(tag: String) -> Self { Self { tag, attributes: HashMap::new(), children: Vec::new(), } } } impl<T> From<&str> for Node<T> { fn from(tag: &str) -> Self { Self::from(tag.to_string()) } }