CanContain

Trait CanContain 

Source
pub trait CanContain<Child> { }
Expand description

Trait indicating that an element can contain another element as a child.

This trait enables compile-time validation of parent-child relationships in HTML documents according to the WHATWG specification.

§Example

use ironhtml_elements::{CanContain, Div, Span, P, Ul, Li, Table, Tr, Td, Text};

// Check valid parent-child relationships
fn valid_child<Parent, Child>() where Parent: CanContain<Child> {}

valid_child::<Div, Span>();   // OK - div can contain span
valid_child::<Div, P>();      // OK - div can contain p
valid_child::<Ul, Li>();      // OK - ul can contain li
valid_child::<Tr, Td>();      // OK - tr can contain td
valid_child::<Div, Text>();   // OK - div can contain text
// valid_child::<P, Div>();   // ERROR - p cannot contain div (block in inline)
// valid_child::<Ul, Div>();  // ERROR - ul can only contain li

Implementors§

Source§

impl CanContain<Base> for Head

Source§

impl CanContain<Body> for Html

Source§

impl CanContain<Caption> for Table

Source§

impl CanContain<Col> for Colgroup

Source§

impl CanContain<Colgroup> for Table

Source§

impl CanContain<Dd> for Dl

Source§

impl CanContain<Div> for Dl

Source§

impl CanContain<Dt> for Dl

Source§

impl CanContain<H1> for Hgroup

Source§

impl CanContain<H2> for Hgroup

Source§

impl CanContain<H3> for Hgroup

Source§

impl CanContain<H4> for Hgroup

Source§

impl CanContain<H5> for Hgroup

Source§

impl CanContain<H6> for Hgroup

Source§

impl CanContain<Head> for Html

Source§

impl CanContain<Img> for Picture

Source§

impl CanContain<Legend> for Fieldset

Source§

impl CanContain<Li> for Menu

Source§

impl CanContain<Li> for Ol

Source§

impl CanContain<Li> for Ul

Source§

impl CanContain<Link> for Head

Source§

impl CanContain<Meta> for Head

Source§

impl CanContain<Noscript> for Head

Source§

impl CanContain<Optgroup> for Select

Source§

impl CanContain<Option_> for Datalist

Source§

impl CanContain<Option_> for Optgroup

Source§

impl CanContain<Option_> for Select

Source§

impl CanContain<P> for Hgroup

Source§

impl CanContain<Param> for Object

Source§

impl CanContain<Rp> for Ruby

Source§

impl CanContain<Rt> for Ruby

Source§

impl CanContain<Script> for Dl

Source§

impl CanContain<Script> for Head

Source§

impl CanContain<Script> for Hgroup

Source§

impl CanContain<Script> for Menu

Source§

impl CanContain<Script> for Ol

Source§

impl CanContain<Script> for Optgroup

Source§

impl CanContain<Script> for Picture

Source§

impl CanContain<Script> for Select

Source§

impl CanContain<Script> for Table

Source§

impl CanContain<Script> for Tbody

Source§

impl CanContain<Script> for Tfoot

Source§

impl CanContain<Script> for Thead

Source§

impl CanContain<Script> for Tr

Source§

impl CanContain<Script> for Ul

Source§

impl CanContain<Source> for Audio

Source§

impl CanContain<Source> for Picture

Source§

impl CanContain<Source> for Video

Source§

impl CanContain<Style> for Head

Source§

impl CanContain<Summary> for Details

Source§

impl CanContain<Tbody> for Table

Source§

impl CanContain<Td> for Tr

Source§

impl CanContain<Template> for Colgroup

Source§

impl CanContain<Template> for Dl

Source§

impl CanContain<Template> for Head

Source§

impl CanContain<Template> for Hgroup

Source§

impl CanContain<Template> for Menu

Source§

impl CanContain<Template> for Ol

Source§

impl CanContain<Template> for Optgroup

Source§

impl CanContain<Template> for Picture

Source§

impl CanContain<Template> for Select

Source§

impl CanContain<Template> for Table

Source§

impl CanContain<Template> for Tbody

Source§

impl CanContain<Template> for Tfoot

Source§

impl CanContain<Template> for Thead

Source§

impl CanContain<Template> for Tr

Source§

impl CanContain<Template> for Ul

Source§

impl CanContain<Text> for A

Source§

impl CanContain<Text> for Abbr

Source§

impl CanContain<Text> for B

Source§

impl CanContain<Text> for Bdi

Source§

impl CanContain<Text> for Bdo

Source§

impl CanContain<Text> for Blockquote

Source§

impl CanContain<Text> for Button

Source§

impl CanContain<Text> for Caption

Source§

impl CanContain<Text> for Cite

Source§

impl CanContain<Text> for Code

Source§

impl CanContain<Text> for Data

Source§

impl CanContain<Text> for Dd

Source§

impl CanContain<Text> for Dfn

Source§

impl CanContain<Text> for Div

Source§

impl CanContain<Text> for Dt

Source§

impl CanContain<Text> for Em

Source§

impl CanContain<Text> for Figcaption

Source§

impl CanContain<Text> for H1

Source§

impl CanContain<Text> for H2

Source§

impl CanContain<Text> for H3

Source§

impl CanContain<Text> for H4

Source§

impl CanContain<Text> for H5

Source§

impl CanContain<Text> for H6

Source§

impl CanContain<Text> for I

Source§

impl CanContain<Text> for Kbd

Source§

impl CanContain<Text> for Label

Source§

impl CanContain<Text> for Legend

Source§

impl CanContain<Text> for Li

Source§

impl CanContain<Text> for Mark

Source§

impl CanContain<Text> for Option_

Source§

impl CanContain<Text> for P

Source§

impl CanContain<Text> for Pre

Source§

impl CanContain<Text> for Q

Source§

impl CanContain<Text> for S

Source§

impl CanContain<Text> for Samp

Source§

impl CanContain<Text> for Script

Source§

impl CanContain<Text> for Small

Source§

impl CanContain<Text> for Span

Source§

impl CanContain<Text> for Strong

Source§

impl CanContain<Text> for Style

Source§

impl CanContain<Text> for Sub

Source§

impl CanContain<Text> for Summary

Source§

impl CanContain<Text> for Sup

Source§

impl CanContain<Text> for Td

Source§

impl CanContain<Text> for Textarea

Source§

impl CanContain<Text> for Th

Source§

impl CanContain<Text> for Time

Source§

impl CanContain<Text> for Title

Source§

impl CanContain<Text> for U

Source§

impl CanContain<Text> for Var

Source§

impl CanContain<Tfoot> for Table

Source§

impl CanContain<Th> for Tr

Source§

impl CanContain<Thead> for Table

Source§

impl CanContain<Title> for Head

Source§

impl CanContain<Tr> for Table

Source§

impl CanContain<Tr> for Tbody

Source§

impl CanContain<Tr> for Tfoot

Source§

impl CanContain<Tr> for Thead

Source§

impl CanContain<Track> for Audio

Source§

impl CanContain<Track> for Video

Source§

impl<T: FlowContent> CanContain<T> for Address

Source§

impl<T: FlowContent> CanContain<T> for Article

Source§

impl<T: FlowContent> CanContain<T> for Aside

Source§

impl<T: FlowContent> CanContain<T> for Blockquote

Source§

impl<T: FlowContent> CanContain<T> for Body

Source§

impl<T: FlowContent> CanContain<T> for Canvas

Source§

impl<T: FlowContent> CanContain<T> for Caption

Source§

impl<T: FlowContent> CanContain<T> for Dd

Source§

impl<T: FlowContent> CanContain<T> for Details

Source§

impl<T: FlowContent> CanContain<T> for Dialog

Source§

impl<T: FlowContent> CanContain<T> for Div

Source§

impl<T: FlowContent> CanContain<T> for Fieldset

Source§

impl<T: FlowContent> CanContain<T> for Figcaption

Source§

impl<T: FlowContent> CanContain<T> for Figure

Source§

impl<T: FlowContent> CanContain<T> for Form

Source§

impl<T: FlowContent> CanContain<T> for Header

Source§

impl<T: FlowContent> CanContain<T> for Iframe

Source§

impl<T: FlowContent> CanContain<T> for Li

Source§

impl<T: FlowContent> CanContain<T> for Main

Source§

impl<T: FlowContent> CanContain<T> for Nav

Source§

impl<T: FlowContent> CanContain<T> for Noscript

Source§

impl<T: FlowContent> CanContain<T> for Object

Source§

impl<T: FlowContent> CanContain<T> for Section

Source§

impl<T: FlowContent> CanContain<T> for Td

Source§

impl<T: FlowContent> CanContain<T> for Template

Source§

impl<T: FlowContent> CanContain<T> for Th

Source§

impl<T: PhrasingContent> CanContain<T> for A

Source§

impl<T: PhrasingContent> CanContain<T> for Abbr

Source§

impl<T: PhrasingContent> CanContain<T> for B

Source§

impl<T: PhrasingContent> CanContain<T> for Bdi

Source§

impl<T: PhrasingContent> CanContain<T> for Bdo

Source§

impl<T: PhrasingContent> CanContain<T> for Button

Source§

impl<T: PhrasingContent> CanContain<T> for Cite

Source§

impl<T: PhrasingContent> CanContain<T> for Code

Source§

impl<T: PhrasingContent> CanContain<T> for Data

Source§

impl<T: PhrasingContent> CanContain<T> for Datalist

Source§

impl<T: PhrasingContent> CanContain<T> for Del

Source§

impl<T: PhrasingContent> CanContain<T> for Dfn

Source§

impl<T: PhrasingContent> CanContain<T> for Dt

Source§

impl<T: PhrasingContent> CanContain<T> for Em

Source§

impl<T: PhrasingContent> CanContain<T> for H1

Source§

impl<T: PhrasingContent> CanContain<T> for H2

Source§

impl<T: PhrasingContent> CanContain<T> for H3

Source§

impl<T: PhrasingContent> CanContain<T> for H4

Source§

impl<T: PhrasingContent> CanContain<T> for H5

Source§

impl<T: PhrasingContent> CanContain<T> for H6

Source§

impl<T: PhrasingContent> CanContain<T> for I

Source§

impl<T: PhrasingContent> CanContain<T> for Ins

Source§

impl<T: PhrasingContent> CanContain<T> for Kbd

Source§

impl<T: PhrasingContent> CanContain<T> for Label

Source§

impl<T: PhrasingContent> CanContain<T> for Legend

Source§

impl<T: PhrasingContent> CanContain<T> for Map

Source§

impl<T: PhrasingContent> CanContain<T> for Mark

Source§

impl<T: PhrasingContent> CanContain<T> for Meter

Source§

impl<T: PhrasingContent> CanContain<T> for Output

Source§

impl<T: PhrasingContent> CanContain<T> for P

Source§

impl<T: PhrasingContent> CanContain<T> for Pre

Source§

impl<T: PhrasingContent> CanContain<T> for Progress

Source§

impl<T: PhrasingContent> CanContain<T> for Q

Source§

impl<T: PhrasingContent> CanContain<T> for Ruby

Source§

impl<T: PhrasingContent> CanContain<T> for S

Source§

impl<T: PhrasingContent> CanContain<T> for Samp

Source§

impl<T: PhrasingContent> CanContain<T> for Slot

Source§

impl<T: PhrasingContent> CanContain<T> for Small

Source§

impl<T: PhrasingContent> CanContain<T> for Span

Source§

impl<T: PhrasingContent> CanContain<T> for Strong

Source§

impl<T: PhrasingContent> CanContain<T> for Sub

Source§

impl<T: PhrasingContent> CanContain<T> for Summary

Source§

impl<T: PhrasingContent> CanContain<T> for Sup

Source§

impl<T: PhrasingContent> CanContain<T> for Time

Source§

impl<T: PhrasingContent> CanContain<T> for U

Source§

impl<T: PhrasingContent> CanContain<T> for Var