summaryrefslogtreecommitdiff
path: root/meap/meap-code/ch1/ch1-escape-html.rs
blob: 7b612325ccb60da148c3b2884ec1351490f557bb (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
fn escape_html(maybe_html: &str) -> String {
  let mut out = String::with_capacity(maybe_html.len());

  for c in maybe_html.chars() {
    match c {
      '<' => out.push_str("&lt;"),
      '>' => out.push_str("&gt;"),
      '&' => out.push_str("&amp;"),
      '\'' => out.push_str("&apos;"),
      '"' => out.push_str("&quot;"),
      _   => out.push(c),
    };
  }

  out
}

fn main() {
  let html = "<p>\"Hello, World!\"</p>";
  let escaped_html = escape_html(html);
  println!("{}", escaped_html);
}