use crate::*;
#[derive(CustomDebug, Data, New)]
pub(crate) struct RenderFnInner {
#[debug(skip)]
#[get(pub(crate))]
#[set(pub(crate))]
pub(crate) render_fn: Box<dyn FnMut() -> VirtualNode>,
}
#[derive(Clone, CustomDebug, Data, New)]
pub struct TextNode {
#[get(pub(crate))]
#[set(pub(crate))]
pub(crate) content: String,
#[debug(skip)]
#[get(pub(crate))]
#[set(pub(crate))]
pub(crate) signal: Option<Signal<String>>,
}
#[derive(CustomDebug, Data, New)]
pub struct DynamicNode {
#[debug(skip)]
#[get(pub(crate))]
#[set(pub(crate))]
pub(crate) render_fn: Rc<RefCell<RenderFnInner>>,
#[get(pub(crate))]
#[set(pub(crate))]
pub(crate) hook_context: HookContext,
}