diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/render.rs | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/src/render.rs b/src/render.rs index 3bb6e41..94b193b 100644 --- a/src/render.rs +++ b/src/render.rs @@ -18,6 +18,9 @@ pub enum RenderNode { attributes: HashMap<String, String>, children: Vec<RenderNode> }, + Fragment { + children: Vec<RenderNode> + }, TextNode { content: String, }, @@ -58,6 +61,13 @@ impl RenderNode { })()) }, + RenderNode::Fragment { children } => { + Box::pin((async move || { + join_all(children.into_iter() + .map(|child| child.render_to_string())).await + .join("") + })()) + } RenderNode::TextNode { content } => Box::pin((async move || content)()), RenderNode::Null => Box::pin((async move || "".to_string())()), |