diff options
Diffstat (limited to 'src/git.rs')
-rw-r--r-- | src/git.rs | 6 |
1 files changed, 4 insertions, 2 deletions
@@ -32,13 +32,15 @@ pub fn crawl_git_tree<P: AsRef<Path>>(path: P) -> io::Result<Vec<u8>> { } pub fn parse_ls_tree_output<'a>(output: &'a [u8]) -> Result<Vec<Blob<'a>>, Utf8Error> { - let re = Regex::new(r"^[^ ]+ [^ ]+ ([^\t]+)\t(.+)$").unwrap(); + lazy_static::lazy_static! { + static ref RE: Regex = Regex::new(r"^[^ ]+ [^ ]+ ([^\t]+)\t(.+)$").unwrap(); + } output.split(|byte| *byte == 0) .map(str::from_utf8) .filter_map(|r_l| match r_l { Err(e) => Some(Err(e)), - Ok(l) => re.captures(l).map(Ok), + Ok(l) => RE.captures(l).map(Ok), }) .map(|r_captures| r_captures.map(|captures| Blob { object: captures.get(1).unwrap().as_str(), |