30 lines
686 B
Rust
30 lines
686 B
Rust
use std::borrow::Cow;
|
|
|
|
pub(crate) fn escape_quoted(unescaped: &str) -> Cow<str> {
|
|
let mut escaped = Cow::Borrowed(unescaped);
|
|
|
|
if escaped.contains('\\') {
|
|
escaped = Cow::Owned(escaped.replace("\\", "\\\\"));
|
|
}
|
|
|
|
if escaped.contains('\"') {
|
|
escaped = Cow::Owned(escaped.replace("\"", "\\\""));
|
|
}
|
|
|
|
escaped
|
|
}
|
|
|
|
pub(crate) fn unescape_quoted(escaped: &str) -> Cow<str> {
|
|
let mut unescaped = Cow::Borrowed(escaped);
|
|
|
|
if unescaped.contains("\\\\") {
|
|
unescaped = Cow::Owned(unescaped.replace("\\\\", "\\"));
|
|
}
|
|
|
|
if unescaped.contains("\\\"") {
|
|
unescaped = Cow::Owned(unescaped.replace("\\\"", "\""));
|
|
}
|
|
|
|
unescaped
|
|
}
|