ahecha_html/render/render_string/
text.rs

1use 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/// A raw (unencoded) html string
36#[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
45/// A raw (unencoded) html string
46impl<'s> RenderString for Raw<'s> {
47  fn render_into<W: Write>(self, writer: &mut W) -> Result {
48    write!(writer, "{}", self.0)
49  }
50}