|
@@ -23,8 +23,37 @@ use crate::{innerlude::VNode, ScopeState};
|
|
|
///
|
|
|
///
|
|
|
/// ```rust, ignore
|
|
|
-/// LazyNodes::new(|f| f.element("div", [], [], [] None))
|
|
|
+/// LazyNodes::new(|f| {
|
|
|
+/// static TEMPLATE: dioxus::core::Template = dioxus::core::Template {
|
|
|
+/// name: "main.rs:5:5:20", // Source location of the template for hot reloading
|
|
|
+/// roots: &[
|
|
|
+/// dioxus::core::TemplateNode::Element {
|
|
|
+/// tag: dioxus_elements::div::TAG_NAME,
|
|
|
+/// namespace: dioxus_elements::div::NAME_SPACE,
|
|
|
+/// attrs: &[],
|
|
|
+/// children: &[],
|
|
|
+/// },
|
|
|
+/// ],
|
|
|
+/// node_paths: &[],
|
|
|
+/// attr_paths: &[],
|
|
|
+/// };
|
|
|
+/// dioxus::core::VNode {
|
|
|
+/// parent: None,
|
|
|
+/// key: None,
|
|
|
+/// template: std::cell::Cell::new(TEMPLATE),
|
|
|
+/// root_ids: dioxus::core::exports::bumpalo::collections::Vec::with_capacity_in(
|
|
|
+/// 1usize,
|
|
|
+/// f.bump(),
|
|
|
+/// )
|
|
|
+/// .into(),
|
|
|
+/// dynamic_nodes: f.bump().alloc([]),
|
|
|
+/// dynamic_attrs: f.bump().alloc([]),
|
|
|
+/// })
|
|
|
+/// }
|
|
|
/// ```
|
|
|
+///
|
|
|
+/// Find more information about how to construct [`VNode`] at <https://dioxuslabs.com/learn/0.4/contributing/walkthrough_readme#the-rsx-macro>
|
|
|
+
|
|
|
pub struct LazyNodes<'a, 'b> {
|
|
|
#[cfg(not(miri))]
|
|
|
inner: SmallBox<dyn FnMut(&'a ScopeState) -> VNode<'a> + 'b, S16>,
|
|
@@ -61,7 +90,7 @@ impl<'a, 'b> LazyNodes<'a, 'b> {
|
|
|
/// Call the closure with the given factory to produce real [`VNode`].
|
|
|
///
|
|
|
/// ```rust, ignore
|
|
|
- /// let f = LazyNodes::new(move |f| f.element("div", [], [], [] None));
|
|
|
+ /// let f = LazyNodes::new(/* Closure for creating VNodes */);
|
|
|
///
|
|
|
/// let node = f.call(cac);
|
|
|
/// ```
|