allow_core/json.rs
1pub fn json_escape(input: &str) -> String {
2 let mut out = String::new();
3 for ch in input.chars() {
4 match ch {
5 '\\' => out.push_str("\\\\"),
6 '"' => out.push_str("\\\""),
7 '\n' => out.push_str("\\n"),
8 '\r' => out.push_str("\\r"),
9 '\t' => out.push_str("\\t"),
10 c if c.is_control() => out.push_str(&format!("\\u{:04x}", c as u32)),
11 c => out.push(c),
12 }
13 }
14 out
15}