Trait silkenweb::node::element::ParentElement

source ·
pub trait ParentElement<D: Dom = DefaultDom>: Element {
    // Required methods
    fn text<'a, T>(self, child: impl RefSignalOrValue<'a, Item = T>) -> Self
       where T: 'a + AsRef<str> + Into<String>;
    fn optional_child(
        self,
        child: impl SignalOrValue<Item = Option<impl ChildNode<D>>>
    ) -> Self;
    fn children<N>(self, children: impl IntoIterator<Item = N>) -> Self
       where N: Into<Node<D>>;
    fn children_signal<N>(
        self,
        children: impl SignalVec<Item = N> + 'static
    ) -> Self
       where N: Into<Node<D>>;

    // Provided method
    fn child(self, child: impl SignalOrValue<Item = impl ChildNode<D>>) -> Self { ... }
}
Expand description

An element that can have children.

Required Methods§

source

fn text<'a, T>(self, child: impl RefSignalOrValue<'a, Item = T>) -> Self
where T: 'a + AsRef<str> + Into<String>,

Add a text child to this element

§Example

Static text:

div().text("Hello, world!");

Dynamic text:

let text = Mutable::new("Hello, world!");
div().text(Sig(text.signal()));
source

fn optional_child( self, child: impl SignalOrValue<Item = Option<impl ChildNode<D>>> ) -> Self

Add an optional child to the element.

The child will update when the signal changes to Some(..), and will be removed when the signal changes to None.

§Example

Add a static optional child:

let text = Mutable::new("hello");

div().optional_child(Some(p().text("Hello, world!")));

Add a dynamic optional child:

let text = Mutable::new("hello");

div().optional_child(Sig(text.signal().map(|text| {
    if text.is_empty() {
        None
    } else {
        Some(div().text(text))
    }
})));
source

fn children<N>(self, children: impl IntoIterator<Item = N>) -> Self
where N: Into<Node<D>>,

Add children to the element.

§Example
div().children([p().text("Hello,"), p().text("world!")]);
source

fn children_signal<N>( self, children: impl SignalVec<Item = N> + 'static ) -> Self
where N: Into<Node<D>>,

Add children from a SignalVec to the element.

See counter_list for an example

Provided Methods§

source

fn child(self, child: impl SignalOrValue<Item = impl ChildNode<D>>) -> Self

Add a child to the element.

§Example

Add static children:

div().child(p().text("Hello,")).child(p().text("world!"));

Add a dynamic child:

let text = Mutable::new("Hello, world!");

div().child(Sig(text.signal().map(|text| div().text(text))));

Object Safety§

This trait is not object safe.

Implementors§

source§

impl<D: Dom> ParentElement<D> for GenericElement<D>

source§

impl<Dom: Dom> ParentElement<Dom> for silkenweb::elements::html::A<Dom>

source§

impl<Dom: Dom> ParentElement<Dom> for Abbr<Dom>

source§

impl<Dom: Dom> ParentElement<Dom> for Address<Dom>

source§

impl<Dom: Dom> ParentElement<Dom> for Article<Dom>

source§

impl<Dom: Dom> ParentElement<Dom> for Aside<Dom>

source§

impl<Dom: Dom> ParentElement<Dom> for Audio<Dom>

source§

impl<Dom: Dom> ParentElement<Dom> for B<Dom>

source§

impl<Dom: Dom> ParentElement<Dom> for Bdi<Dom>

source§

impl<Dom: Dom> ParentElement<Dom> for Bdo<Dom>

source§

impl<Dom: Dom> ParentElement<Dom> for Blockquote<Dom>

source§

impl<Dom: Dom> ParentElement<Dom> for Button<Dom>

source§

impl<Dom: Dom> ParentElement<Dom> for Canvas<Dom>

source§

impl<Dom: Dom> ParentElement<Dom> for Caption<Dom>

source§

impl<Dom: Dom> ParentElement<Dom> for Cite<Dom>

source§

impl<Dom: Dom> ParentElement<Dom> for Code<Dom>

source§

impl<Dom: Dom> ParentElement<Dom> for Colgroup<Dom>

source§

impl<Dom: Dom> ParentElement<Dom> for Data<Dom>

source§

impl<Dom: Dom> ParentElement<Dom> for Datalist<Dom>

source§

impl<Dom: Dom> ParentElement<Dom> for Dd<Dom>

source§

impl<Dom: Dom> ParentElement<Dom> for Del<Dom>

source§

impl<Dom: Dom> ParentElement<Dom> for Details<Dom>

source§

impl<Dom: Dom> ParentElement<Dom> for Dfn<Dom>

source§

impl<Dom: Dom> ParentElement<Dom> for Dialog<Dom>

source§

impl<Dom: Dom> ParentElement<Dom> for Div<Dom>

source§

impl<Dom: Dom> ParentElement<Dom> for Dl<Dom>

source§

impl<Dom: Dom> ParentElement<Dom> for Dt<Dom>

source§

impl<Dom: Dom> ParentElement<Dom> for Em<Dom>

source§

impl<Dom: Dom> ParentElement<Dom> for Fieldset<Dom>

source§

impl<Dom: Dom> ParentElement<Dom> for Figcaption<Dom>

source§

impl<Dom: Dom> ParentElement<Dom> for Figure<Dom>

source§

impl<Dom: Dom> ParentElement<Dom> for Footer<Dom>

source§

impl<Dom: Dom> ParentElement<Dom> for Form<Dom>

source§

impl<Dom: Dom> ParentElement<Dom> for H1<Dom>

source§

impl<Dom: Dom> ParentElement<Dom> for H2<Dom>

source§

impl<Dom: Dom> ParentElement<Dom> for H3<Dom>

source§

impl<Dom: Dom> ParentElement<Dom> for H4<Dom>

source§

impl<Dom: Dom> ParentElement<Dom> for H5<Dom>

source§

impl<Dom: Dom> ParentElement<Dom> for H6<Dom>

source§

impl<Dom: Dom> ParentElement<Dom> for Head<Dom>

source§

impl<Dom: Dom> ParentElement<Dom> for Header<Dom>

source§

impl<Dom: Dom> ParentElement<Dom> for Hgroup<Dom>

source§

impl<Dom: Dom> ParentElement<Dom> for I<Dom>

source§

impl<Dom: Dom> ParentElement<Dom> for Iframe<Dom>

source§

impl<Dom: Dom> ParentElement<Dom> for Ins<Dom>

source§

impl<Dom: Dom> ParentElement<Dom> for Kbd<Dom>

source§

impl<Dom: Dom> ParentElement<Dom> for Label<Dom>

source§

impl<Dom: Dom> ParentElement<Dom> for Legend<Dom>

source§

impl<Dom: Dom> ParentElement<Dom> for Li<Dom>

source§

impl<Dom: Dom> ParentElement<Dom> for Main<Dom>

source§

impl<Dom: Dom> ParentElement<Dom> for Map<Dom>

source§

impl<Dom: Dom> ParentElement<Dom> for Mark<Dom>

source§

impl<Dom: Dom> ParentElement<Dom> for Menu<Dom>

source§

impl<Dom: Dom> ParentElement<Dom> for Meter<Dom>

source§

impl<Dom: Dom> ParentElement<Dom> for Nav<Dom>

source§

impl<Dom: Dom> ParentElement<Dom> for Noscript<Dom>

source§

impl<Dom: Dom> ParentElement<Dom> for Object<Dom>

source§

impl<Dom: Dom> ParentElement<Dom> for Ol<Dom>

source§

impl<Dom: Dom> ParentElement<Dom> for Optgroup<Dom>

source§

impl<Dom: Dom> ParentElement<Dom> for Option<Dom>

source§

impl<Dom: Dom> ParentElement<Dom> for Output<Dom>

source§

impl<Dom: Dom> ParentElement<Dom> for P<Dom>

source§

impl<Dom: Dom> ParentElement<Dom> for Picture<Dom>

source§

impl<Dom: Dom> ParentElement<Dom> for Pre<Dom>

source§

impl<Dom: Dom> ParentElement<Dom> for Progress<Dom>

source§

impl<Dom: Dom> ParentElement<Dom> for Q<Dom>

source§

impl<Dom: Dom> ParentElement<Dom> for Rb<Dom>

source§

impl<Dom: Dom> ParentElement<Dom> for Rp<Dom>

source§

impl<Dom: Dom> ParentElement<Dom> for Rt<Dom>

source§

impl<Dom: Dom> ParentElement<Dom> for Rtc<Dom>

source§

impl<Dom: Dom> ParentElement<Dom> for Ruby<Dom>

source§

impl<Dom: Dom> ParentElement<Dom> for S<Dom>

source§

impl<Dom: Dom> ParentElement<Dom> for Samp<Dom>

source§

impl<Dom: Dom> ParentElement<Dom> for silkenweb::elements::html::Script<Dom>

source§

impl<Dom: Dom> ParentElement<Dom> for Section<Dom>

source§

impl<Dom: Dom> ParentElement<Dom> for Select<Dom>

source§

impl<Dom: Dom> ParentElement<Dom> for Small<Dom>

source§

impl<Dom: Dom> ParentElement<Dom> for Span<Dom>

source§

impl<Dom: Dom> ParentElement<Dom> for Strong<Dom>

source§

impl<Dom: Dom> ParentElement<Dom> for silkenweb::elements::html::Style<Dom>

source§

impl<Dom: Dom> ParentElement<Dom> for Sub<Dom>

source§

impl<Dom: Dom> ParentElement<Dom> for Summary<Dom>

source§

impl<Dom: Dom> ParentElement<Dom> for Sup<Dom>

source§

impl<Dom: Dom> ParentElement<Dom> for Table<Dom>

source§

impl<Dom: Dom> ParentElement<Dom> for Tbody<Dom>

source§

impl<Dom: Dom> ParentElement<Dom> for Td<Dom>

source§

impl<Dom: Dom> ParentElement<Dom> for Textarea<Dom>

source§

impl<Dom: Dom> ParentElement<Dom> for Tfoot<Dom>

source§

impl<Dom: Dom> ParentElement<Dom> for Th<Dom>

source§

impl<Dom: Dom> ParentElement<Dom> for Thead<Dom>

source§

impl<Dom: Dom> ParentElement<Dom> for Time<Dom>

source§

impl<Dom: Dom> ParentElement<Dom> for silkenweb::elements::html::Title<Dom>

source§

impl<Dom: Dom> ParentElement<Dom> for Tr<Dom>

source§

impl<Dom: Dom> ParentElement<Dom> for U<Dom>

source§

impl<Dom: Dom> ParentElement<Dom> for Ul<Dom>

source§

impl<Dom: Dom> ParentElement<Dom> for Var<Dom>

source§

impl<Dom: Dom> ParentElement<Dom> for Video<Dom>

source§

impl<Dom: Dom> ParentElement<Dom> for silkenweb::elements::svg::A<Dom>

source§

impl<Dom: Dom> ParentElement<Dom> for Circle<Dom>

source§

impl<Dom: Dom> ParentElement<Dom> for ClipPath<Dom>

source§

impl<Dom: Dom> ParentElement<Dom> for Defs<Dom>

source§

impl<Dom: Dom> ParentElement<Dom> for Desc<Dom>

source§

impl<Dom: Dom> ParentElement<Dom> for Ellipse<Dom>

source§

impl<Dom: Dom> ParentElement<Dom> for FeBlend<Dom>

source§

impl<Dom: Dom> ParentElement<Dom> for FeColorMatrix<Dom>

source§

impl<Dom: Dom> ParentElement<Dom> for FeComponentTransfer<Dom>

source§

impl<Dom: Dom> ParentElement<Dom> for FeComposite<Dom>

source§

impl<Dom: Dom> ParentElement<Dom> for FeConvolveMatrix<Dom>

source§

impl<Dom: Dom> ParentElement<Dom> for FeDiffuseLighting<Dom>

source§

impl<Dom: Dom> ParentElement<Dom> for FeDisplacementMap<Dom>

source§

impl<Dom: Dom> ParentElement<Dom> for FeDistantLight<Dom>

source§

impl<Dom: Dom> ParentElement<Dom> for FeFlood<Dom>

source§

impl<Dom: Dom> ParentElement<Dom> for FeFuncA<Dom>

source§

impl<Dom: Dom> ParentElement<Dom> for FeFuncB<Dom>

source§

impl<Dom: Dom> ParentElement<Dom> for FeFuncG<Dom>

source§

impl<Dom: Dom> ParentElement<Dom> for FeFuncR<Dom>

source§

impl<Dom: Dom> ParentElement<Dom> for FeGaussianBlur<Dom>

source§

impl<Dom: Dom> ParentElement<Dom> for FeImage<Dom>

source§

impl<Dom: Dom> ParentElement<Dom> for FeMerge<Dom>

source§

impl<Dom: Dom> ParentElement<Dom> for FeMergeNode<Dom>

source§

impl<Dom: Dom> ParentElement<Dom> for FeMorphology<Dom>

source§

impl<Dom: Dom> ParentElement<Dom> for FeOffset<Dom>

source§

impl<Dom: Dom> ParentElement<Dom> for FePointLight<Dom>

source§

impl<Dom: Dom> ParentElement<Dom> for FeSpecularLighting<Dom>

source§

impl<Dom: Dom> ParentElement<Dom> for FeSpotLight<Dom>

source§

impl<Dom: Dom> ParentElement<Dom> for FeTile<Dom>

source§

impl<Dom: Dom> ParentElement<Dom> for FeTurbulence<Dom>

source§

impl<Dom: Dom> ParentElement<Dom> for Filter<Dom>

source§

impl<Dom: Dom> ParentElement<Dom> for ForeignObject<Dom>

source§

impl<Dom: Dom> ParentElement<Dom> for G<Dom>

source§

impl<Dom: Dom> ParentElement<Dom> for Line<Dom>

source§

impl<Dom: Dom> ParentElement<Dom> for Marker<Dom>

source§

impl<Dom: Dom> ParentElement<Dom> for Mask<Dom>

source§

impl<Dom: Dom> ParentElement<Dom> for Metadata<Dom>

source§

impl<Dom: Dom> ParentElement<Dom> for Mpath<Dom>

source§

impl<Dom: Dom> ParentElement<Dom> for Path<Dom>

source§

impl<Dom: Dom> ParentElement<Dom> for Pattern<Dom>

source§

impl<Dom: Dom> ParentElement<Dom> for Polygon<Dom>

source§

impl<Dom: Dom> ParentElement<Dom> for Polyline<Dom>

source§

impl<Dom: Dom> ParentElement<Dom> for Rect<Dom>

source§

impl<Dom: Dom> ParentElement<Dom> for silkenweb::elements::svg::Script<Dom>

source§

impl<Dom: Dom> ParentElement<Dom> for Set<Dom>

source§

impl<Dom: Dom> ParentElement<Dom> for Stop<Dom>

source§

impl<Dom: Dom> ParentElement<Dom> for silkenweb::elements::svg::Style<Dom>

source§

impl<Dom: Dom> ParentElement<Dom> for Svg<Dom>

source§

impl<Dom: Dom> ParentElement<Dom> for Switch<Dom>

source§

impl<Dom: Dom> ParentElement<Dom> for Symbol<Dom>

source§

impl<Dom: Dom> ParentElement<Dom> for Text<Dom>

source§

impl<Dom: Dom> ParentElement<Dom> for TextPath<Dom>

source§

impl<Dom: Dom> ParentElement<Dom> for silkenweb::elements::svg::Title<Dom>

source§

impl<Dom: Dom> ParentElement<Dom> for Tspan<Dom>

source§

impl<Dom: Dom> ParentElement<Dom> for Use<Dom>

source§

impl<Dom: Dom> ParentElement<Dom> for View<Dom>