html_site_generator/html/
meta.rs

1use std::collections::HashMap;
2use std::io::Write;
3
4use anyhow::Result;
5
6use crate::html::IntoHtmlNode;
7
8#[derive(Debug)]
9pub struct Meta {
10    values: HashMap<String, String>,
11}
12
13impl Meta {
14    pub fn new() -> Self {
15        Meta {
16            values: HashMap::new(),
17        }
18    }
19
20    pub fn add_pair<S: Into<String>>(&mut self, key: S, value: S) {
21        self.values.insert(key.into(), value.into());
22    }
23}
24
25impl IntoHtmlNode for Meta {
26    fn transform_into_html_node(&self, buffer: &mut dyn Write) -> Result<()> {
27        write!(buffer, "<meta")?;
28
29        for (key, value) in self.values.iter() {
30            write!(buffer, " {}=\"{}\"", key, value)?;
31        }
32
33        writeln!(buffer, "/>")?;
34
35        Ok(())
36    }
37}