html_site_generator/html/
meta.rs1use 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}