ftml/render/html/
render.rs1use super::context::HtmlContext;
22use super::element::{render_element, render_elements};
23use crate::tree::Element;
24use std::borrow::Cow;
25
26pub trait ItemRender {
27 fn render(&self, ctx: &mut HtmlContext);
28}
29
30impl ItemRender for &'_ str {
31 #[inline]
32 fn render(&self, ctx: &mut HtmlContext) {
33 ctx.push_escaped(self);
34 }
35}
36
37impl ItemRender for &'_ Cow<'_, str> {
38 #[inline]
39 fn render(&self, ctx: &mut HtmlContext) {
40 ctx.push_escaped(self);
41 }
42}
43
44impl ItemRender for String {
45 #[inline]
46 fn render(&self, ctx: &mut HtmlContext) {
47 ctx.push_escaped(self);
48 }
49}
50
51impl ItemRender for &'_ String {
52 #[inline]
53 fn render(&self, ctx: &mut HtmlContext) {
54 ctx.push_escaped(self);
55 }
56}
57
58impl ItemRender for &'_ Element<'_> {
59 #[inline]
60 fn render(&self, ctx: &mut HtmlContext) {
61 render_element(ctx, self)
62 }
63}
64
65impl ItemRender for &'_ [Element<'_>] {
66 #[inline]
67 fn render(&self, ctx: &mut HtmlContext) {
68 render_elements(ctx, self)
69 }
70}
71
72impl ItemRender for &'_ Vec<Element<'_>> {
73 #[inline]
74 fn render(&self, ctx: &mut HtmlContext) {
75 render_elements(ctx, self)
76 }
77}