mirror of
https://github.com/BurntSushi/ripgrep.git
synced 2024-12-12 19:18:24 +02:00
fdd8510fdd
The top-level listing was just getting a bit too long for my taste. So put all of the code in one directory and shrink the large top-level mess to a small top-level mess. NOTE: This commit only contains renames. The subsequent commit will actually make ripgrep build again. We do it this way with the naive hope that this will make it easier for git history to track the renames. Sigh.
30 lines
806 B
Rust
30 lines
806 B
Rust
/// Converts an arbitrary sequence of bytes to a literal suitable for building
|
|
/// a regular expression.
|
|
pub fn bytes_to_regex(bs: &[u8]) -> String {
|
|
use regex_syntax::is_meta_character;
|
|
use std::fmt::Write;
|
|
|
|
let mut s = String::with_capacity(bs.len());
|
|
for &b in bs {
|
|
if b <= 0x7F && !is_meta_character(b as char) {
|
|
write!(s, r"{}", b as char).unwrap();
|
|
} else {
|
|
write!(s, r"\x{:02x}", b).unwrap();
|
|
}
|
|
}
|
|
s
|
|
}
|
|
|
|
/// Converts arbitrary bytes to a nice string.
|
|
pub fn show_bytes(bs: &[u8]) -> String {
|
|
use std::ascii::escape_default;
|
|
use std::str;
|
|
|
|
let mut nice = String::new();
|
|
for &b in bs {
|
|
let part: Vec<u8> = escape_default(b).collect();
|
|
nice.push_str(str::from_utf8(&part).unwrap());
|
|
}
|
|
nice
|
|
}
|