Spreadingv iterables in HTML
Any iterable can be used to embed into
dom!
macro:
use vertigo::{component, dom}; #[component] fn Wing<'a>(side: &'a str) { dom! { <p>{side} " wing"</p> } } let wings = vec![ dom! { <Wing side="left" /> }, dom! { <Wing side="right" /> }, ]; dom! { <ul> {..wings} </ul> }
Iterators can be combined inline:
use vertigo::{component, dom}; #[component] fn Wing<'a>(side: &'a str, number: i32) { dom! { <p>{number} ". " {side} " wing"</p> } } let left_wings = (1..3).map(|i| dom! { <Wing side="left" number={i} /> }); let right_wings = (1..3).map(|i| dom! { <Wing side="right" number={i} /> }); dom! { <ul> {..left_wings.chain(right_wings)} </ul> }