use crate::dom::element::DomElement;
pub mod dialog;
pub mod element;
pub mod event;
pub mod text;
pub mod node;
pub mod node_list;
pub trait DomOutput {
fn create_element(self) -> DomElement;
fn render(self, element: DomElement);
}
pub struct DomElementCreateAndRender<CreateFn, RenderFn>
where
CreateFn: FnOnce() -> DomElement,
RenderFn: FnOnce(DomElement),
{
pub create: CreateFn,
pub render: RenderFn,
}
impl<CreateFn, RenderFn> DomOutput for DomElementCreateAndRender<CreateFn, RenderFn>
where
CreateFn: FnOnce() -> DomElement,
RenderFn: FnOnce(DomElement),
{
fn create_element(self) -> DomElement {
(self.create)()
}
fn render(self, element: DomElement) {
(self.render)(element)
}
}