#[cfg(any(feature = "pixm", feature = "pdqm", feature = "mcsd", feature = "pmir"))]
pub(crate) fn escape(part: &str) -> String {
let mut escaped = String::with_capacity(part.len());
for character in part.chars() {
if matches!(character, '\\' | '|' | ',' | '$') {
escaped.push('\\');
}
escaped.push(character);
}
escaped
}
#[cfg(all(
test,
any(feature = "pixm", feature = "pdqm", feature = "mcsd", feature = "pmir")
))]
mod tests {
use super::escape;
#[test]
fn the_separators_fhir_search_defines_are_escaped() {
assert_eq!(escape(r"a|b,c$d\e"), r"a\|b\,c\$d\\e", "every separator");
assert_eq!(
escape("IHERED-994"),
"IHERED-994",
"plain text is unchanged"
);
}
}