Unified · Split
| @@ -36,10 +36,12 @@ mod locate { · 35 unmodified lines | ||
| 36 | 36 | for pack in &self.packs { |
| 37 | 37 | if pack.locate(id, buffer, &mut pack::cache::DecodeEntryNoop).is_some() { |
| 38 | 38 | let object = pack.locate(id, buffer, &mut pack::cache::DecodeEntryNoop).unwrap(); |
| 39 | − return Some(object.map(|object| Object::Borrowed(object)).map_err(Into::into)); | |
| 39 | + return Some(object.map(Object::Borrowed).map_err(Into::into)); | |
| 40 | 40 | } |
| 41 | 41 | } |
| 42 | − unimplemented!("object location") | |
| 42 | + self.loose | |
| 43 | + .locate(id) | |
| 44 | + .map(|object| object.map_err(Into::into).map(Object::Loose)) | |
| 43 | 45 | } |
| 44 | 46 | } |
| 45 | 47 | } |
| @@ -95,7 +97,7 @@ mod init { · 49 unmodified lines | ||
| 95 | 97 | let packs = if let Ok(entries) = std::fs::read_dir(loose_objects.join("packs")) { |
| 96 | 98 | let mut packs_and_sizes = entries |
| 97 | 99 | .filter_map(Result::ok) |
| 98 | − .filter_map(|e| e.metadata().map(|md| (e.path().to_owned(), md)).ok()) | |
| 100 | + .filter_map(|e| e.metadata().map(|md| (e.path(), md)).ok()) | |
| 99 | 101 | .filter(|(_, md)| md.file_type().is_file()) |
| 100 | 102 | .filter(|(p, _)| p.extension().unwrap_or_default() == "idx" && p.starts_with("pack-")) |
| 101 | 103 | .map(|(p, md)| pack::Bundle::at(p).map(|b| (b, md.len()))) |