Unified · Split
| @@ -36,10 +36,12 @@ mod locate { · 35 unmodified lines | |||
| 36 | for pack in &self.packs { | 36 | for pack in &self.packs { |
| 37 | if pack.locate(id, buffer, &mut pack::cache::DecodeEntryNoop).is_some() { | 37 | if pack.locate(id, buffer, &mut pack::cache::DecodeEntryNoop).is_some() { |
| 38 | let object = pack.locate(id, buffer, &mut pack::cache::DecodeEntryNoop).unwrap(); | 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 | let packs = if let Ok(entries) = std::fs::read_dir(loose_objects.join("packs")) { | 97 | let packs = if let Ok(entries) = std::fs::read_dir(loose_objects.join("packs")) { |
| 96 | let mut packs_and_sizes = entries | 98 | let mut packs_and_sizes = entries |
| 97 | .filter_map(Result::ok) | 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 | .filter(|(_, md)| md.file_type().is_file()) | 101 | .filter(|(_, md)| md.file_type().is_file()) |
| 100 | .filter(|(p, _)| p.extension().unwrap_or_default() == "idx" && p.starts_with("pack-")) | 102 | .filter(|(p, _)| p.extension().unwrap_or_default() == "idx" && p.starts_with("pack-")) |
| 101 | .map(|(p, md)| pack::Bundle::at(p).map(|b| (b, md.len()))) | 103 | .map(|(p, md)| pack::Bundle::at(p).map(|b| (b, md.len()))) |