use keyhog_core::SensitiveString;
pub(crate) fn extract_printable_strings(bytes: &[u8], min_len: usize) -> Vec<SensitiveString> {
let mut strings = Vec::new();
let mut current_string = String::new();
for &b in bytes {
if b.is_ascii_graphic() || b == b' ' || b == b'\t' {
current_string.push(b as char);
} else if current_string.len() >= min_len {
strings.push(std::mem::take(&mut current_string).into());
} else {
current_string.clear();
}
}
if current_string.len() >= min_len {
strings.push(current_string.into());
}
strings
}