// SPDX-License-Identifier: Apache-2.0
//! ANSI escape handling shared by the patterns and the engine compressor.
/// Removes ANSI escape codes from a string, returning clean text.
pub fn strip_ansi(s: &str) -> String {
if !s.contains('\x1b') {
return s.to_string();
}
let mut result = String::with_capacity(s.len());
let mut in_escape = false;
for c in s.chars() {
if c == '\x1b' {
in_escape = true;
continue;
}
if in_escape {
if c.is_ascii_alphabetic() {
in_escape = false;
}
continue;
}
result.push(c);
}
result
}