mabel_eno/printer/
html.rs1use super::Printer;
2
3#[derive(Debug)]
4pub struct HtmlPrinter;
5
6impl HtmlPrinter {
7 fn escape(string: &str) -> String {
8 string
9 .replace('&', "&")
10 .replace('<', "<")
11 .replace('>', ">")
12 }
13}
14
15impl Printer for HtmlPrinter {
16 fn comment(&self, comment: &str) -> String {
17 let comment_escaped = HtmlPrinter::escape(comment);
18 format!(r#"<span class="comment">{comment_escaped}</span>"#)
19 }
20
21 fn gutter(&self, line_number: u32) -> String {
22 format!(r#"<span class="gutter"> {:>3} </span> "#, line_number)
23 }
24
25 fn key(&self, key: &str) -> String {
26 let key_escaped = HtmlPrinter::escape(key);
27 format!(r#"<span class="key">{key_escaped}</span>"#)
28 }
29
30 fn operator(&self, operator: &str) -> String {
31 format!(r#"<span class="operator">{operator}</span>"#)
32 }
33
34 fn value(&self, value: &str) -> String {
35 let value_escaped = HtmlPrinter::escape(value);
36 format!(r#"<span class="value">{value_escaped}</span>"#)
37 }
38}