use taino_edit_core::Node;
use web_sys::{Element, Text};
#[derive(Debug, Clone)]
pub enum ViewDesc {
Element {
node: Node,
dom: Element,
children: Vec<ViewDesc>,
},
Text {
node: Node,
text: Text,
wrapper: Option<Element>,
},
}
impl ViewDesc {
pub fn dom_node(&self) -> web_sys::Node {
match self {
ViewDesc::Element { dom, .. } => dom.clone().into(),
ViewDesc::Text {
text,
wrapper: None,
..
} => text.clone().into(),
ViewDesc::Text {
wrapper: Some(w), ..
} => w.clone().into(),
}
}
pub fn node(&self) -> &Node {
match self {
ViewDesc::Element { node, .. } | ViewDesc::Text { node, .. } => node,
}
}
}