Unified · Split
| @@ -24,7 +24,7 @@ impl pack::index::File { · 23 unmodified lines | ||
| 24 | 24 | out: impl io::Write, |
| 25 | 25 | ) -> Result<Outcome, Error> |
| 26 | 26 | where |
| 27 | − F: for<'r> Fn(u64, &'r mut Vec<u8>) -> Option<(pack::data::Header, u64)>, | |
| 27 | + F: for<'r> Fn(u64, &'r mut Vec<u8>) -> Option<(pack::data::Header, u64)> + Send + Sync, | |
| 28 | 28 | { |
| 29 | 29 | use io::Write; |
| 30 | 30 | |
| @@ -120,7 +120,9 @@ impl pack::index::File { · 89 unmodified lines | ||
| 120 | 120 | }, |
| 121 | 121 | thread_limit, |
| 122 | 122 | |_| (), |
| 123 | − |_base_pack_offsets, _state| Vec::new(), | |
| 123 | + |base_pack_offsets, state| { | |
| 124 | + apply_deltas(base_pack_offsets, state, &index_entries, &_cache_by_offset, &mode) | |
| 125 | + }, | |
| 124 | 126 | Reducer::new(num_objects), |
| 125 | 127 | )?; |
| 126 | 128 | items.sort_by_key(|e| e.1); |
| @@ -151,3 +153,16 @@ impl pack::index::File { · 24 unmodified lines | ||
| 151 | 153 | }) |
| 152 | 154 | } |
| 153 | 155 | } |
| 156 | + | |
| 157 | +fn apply_deltas<F>( | |
| 158 | + _base_entries: Vec<&Entry>, | |
| 159 | + _state: &mut (), | |
| 160 | + _entries: &[Entry], | |
| 161 | + _caches: &parking_lot::Mutex<BTreeMap<u64, CacheEntry>>, | |
| 162 | + _mode: &Mode<F>, | |
| 163 | +) -> Vec<(u64, owned::Id)> | |
| 164 | +where | |
| 165 | + F: for<'r> Fn(u64, &'r mut Vec<u8>) -> Option<(pack::data::Header, u64)> + Send + Sync, | |
| 166 | +{ | |
| 167 | + Vec::new() | |
| 168 | +} | |