ahecha_html/render/render_string/
text.rs1use std::fmt::{Result, Write};
2
3use crate::{html_escaping::escape_html, render::RenderString};
4
5impl RenderString for String {
6 fn render_into<W: Write>(self, writer: &mut W) -> Result {
7 escape_html(&self, writer)
8 }
9}
10
11impl RenderString for &String {
12 fn render_into<W: Write>(self, writer: &mut W) -> Result {
13 escape_html(self, writer)
14 }
15}
16
17impl RenderString for &str {
18 fn render_into<W: Write>(self, writer: &mut W) -> Result {
19 escape_html(self, writer)
20 }
21}
22
23impl RenderString for &&str {
24 fn render_into<W: Write>(self, writer: &mut W) -> Result {
25 escape_html(self, writer)
26 }
27}
28
29impl RenderString for std::borrow::Cow<'_, str> {
30 fn render_into<W: Write>(self, writer: &mut W) -> Result {
31 escape_html(&self, writer)
32 }
33}
34
35#[derive(Debug)]
37pub struct Raw<'s>(&'s str);
38
39impl<'s> From<&'s str> for Raw<'s> {
40 fn from(s: &'s str) -> Self {
41 Raw(s)
42 }
43}
44
45impl<'s> RenderString for Raw<'s> {
47 fn render_into<W: Write>(self, writer: &mut W) -> Result {
48 write!(writer, "{}", self.0)
49 }
50}