/// Lightweight DOM-like node produced by [`crate::Forge::render_dom`].
#[derive(Debug, Clone, PartialEq, Eq)]
pub enum VNode {
    /// Element node.
    Element(VElement),
    /// Text node.
    Text(String),
}

/// Element in mdforge's virtual DOM representation.
#[derive(Debug, Clone, PartialEq, Eq)]
pub struct VElement {
    /// Element tag name.
    pub tag: String,
    /// String attributes.
    pub attrs: Vec<(String, String)>,
    /// Child nodes.
    pub children: Vec<VNode>,
}
