1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
use crate::tags::Tag;

use super::{ElementBuilder, ElementName, HtmlElement};

#[derive(Debug, PartialEq, Eq)]
pub struct TextContent;

impl<'a> TextContent {
    pub fn text<S: AsRef<str>>(text: S) -> HtmlElement<'a> {
        Self::builder().text(text.as_ref())
    }
}

impl ElementName for TextContent {
    fn name(&self) -> &'static str {
        ""
    }
}

impl<'a> ElementBuilder<'a> for TextContent {
    fn builder() -> HtmlElement<'a> {
        let tag = Tag {
            element: Box::new(Self),
            attrs: Default::default(),
        };
        HtmlElement::builder(tag)
    }
}