use crate::*;
#[derive(Data, Default, New)]
pub struct StyleProperty {
#[get(pub)]
#[set(pub)]
name: String,
#[get(pub)]
#[set(pub)]
value: String,
}
#[derive(Data, New)]
pub struct Style {
#[get(pub)]
#[set(pub)]
properties: Vec<StyleProperty>,
}
#[derive(Clone, Data, New)]
pub struct AttributeEntry {
#[get(pub(crate))]
#[set(pub(crate))]
pub(crate) name: String,
#[get(pub(crate))]
#[set(pub(crate))]
pub(crate) value: AttributeValue,
}
#[derive(Clone, Data, New)]
pub struct TextNode {
#[get(pub(crate))]
#[set(pub(crate))]
pub(crate) content: String,
#[get(pub(crate))]
#[set(pub(crate))]
pub(crate) signal: Option<Signal<String>>,
}
#[derive(Data)]
pub struct DynamicNode {
#[get(pub)]
#[set(pub)]
pub(crate) render_fn: Rc<RefCell<dyn FnMut() -> VirtualNode>>,
#[get(pub, type(copy))]
#[set(pub)]
pub(crate) hook_context: HookContext,
}
#[derive(Clone, Data, Default)]
pub struct CssClass {
#[get(pub)]
#[set(pub)]
name: String,
#[get(pub)]
#[set(pub)]
style: String,
}