INNER CODE UNIT · Rust
json_escape
edwardkim/rhwp · bindings/Native/src/lib.rs:496
fn json_escape(s: &str) -> String {
let mut out = String::with_capacity(s.len());
for ch in s.chars() {
match ch {
'"' => out.push_str("\\\""),
'\\' => out.push_str("\\\\"),
'\n' => out.push_str("\\n"),
'\r' => out.push_str("\\r"),
'\t' => out.push_str("\\t"),
c if c < '\u{20}' => out.push_str(&format!("\\u{:04x}", c as u32)),
c => out.push(c),
}
}
out
}