1use std::borrow::Cow;
2
3pub(crate) fn escape_quoted(unescaped: &str) -> Cow<str> {
4 let mut escaped = Cow::Borrowed(unescaped);
5
6 if escaped.contains('\\') {
7 escaped = Cow::Owned(escaped.replace("\\", "\\\\"));
8 }
9
10 if escaped.contains('\"') {
11 escaped = Cow::Owned(escaped.replace("\"", "\\\""));
12 }
13
14 escaped
15}
16
17pub(crate) fn unescape_quoted(escaped: &str) -> Cow<str> {
18 let mut unescaped = Cow::Borrowed(escaped);
19
20 if unescaped.contains("\\\\") {
21 unescaped = Cow::Owned(unescaped.replace("\\\\", "\\"));
22 }
23
24 if unescaped.contains("\\\"") {
25 unescaped = Cow::Owned(unescaped.replace("\\\"", "\""));
26 }
27
28 unescaped
29}