summaryrefslogtreecommitdiffstats
path: root/src/git.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/git.rs')
-rw-r--r--src/git.rs6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/git.rs b/src/git.rs
index daaceb0..68afd52 100644
--- a/src/git.rs
+++ b/src/git.rs
@@ -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(),