11use std:: { fs, io} ;
22
33use gix_features:: zlib:: Decompress ;
4- use gix_hash:: { Hasher , ObjectId } ;
4+ use gix_hash:: { hasher , Hasher , ObjectId } ;
55
66use crate :: data:: input;
77
5252 object_hash : gix_hash:: Kind ,
5353 ) -> Result < BytesToEntriesIter < BR > , input:: Error > {
5454 let mut header_data = [ 0u8 ; 12 ] ;
55- read. read_exact ( & mut header_data) ?;
55+ read. read_exact ( & mut header_data) . map_err ( hasher :: io :: Error :: from ) ?;
5656
5757 let ( version, num_objects) = crate :: data:: header:: decode ( & header_data) ?;
5858 assert_eq ! (
9797 }
9898 None => crate :: data:: Entry :: from_read ( & mut self . read , self . offset , self . hash_len ) ,
9999 }
100- . map_err ( input :: Error :: from) ?;
100+ . map_err ( hasher :: io :: Error :: from) ?;
101101
102102 // Decompress object to learn its compressed bytes
103103 let compressed_buf = self . compressed_buf . take ( ) . unwrap_or_else ( || Vec :: with_capacity ( 4096 ) ) ;
@@ -114,7 +114,7 @@ where
114114 decompressor : & mut self . decompressor ,
115115 } ;
116116
117- let bytes_copied = io:: copy ( & mut decompressed_reader, & mut io:: sink ( ) ) ?;
117+ let bytes_copied = io:: copy ( & mut decompressed_reader, & mut io:: sink ( ) ) . map_err ( hasher :: io :: Error :: from ) ?;
118118 if bytes_copied != entry. decompressed_size {
119119 return Err ( input:: Error :: IncompletePack {
120120 actual : bytes_copied,
@@ -138,7 +138,10 @@ where
138138
139139 let crc32 = if self . compressed . crc32 ( ) {
140140 let mut header_buf = [ 0u8 ; 12 + gix_hash:: Kind :: longest ( ) . len_in_bytes ( ) ] ;
141- let header_len = entry. header . write_to ( bytes_copied, & mut header_buf. as_mut ( ) ) ?;
141+ let header_len = entry
142+ . header
143+ . write_to ( bytes_copied, & mut header_buf. as_mut ( ) )
144+ . map_err ( hasher:: io:: Error :: from) ?;
142145 let state = gix_features:: hash:: crc32_update ( 0 , & header_buf[ ..header_len] ) ;
143146 Some ( gix_features:: hash:: crc32_update ( state, & compressed) )
144147 } else {
@@ -172,7 +175,7 @@ where
172175 let mut id = gix_hash:: ObjectId :: null ( self . object_hash ) ;
173176 if let Err ( err) = self . read . read_exact ( id. as_mut_slice ( ) ) {
174177 if self . mode != input:: Mode :: Restore {
175- return Err ( err. into ( ) ) ;
178+ return Err ( input :: Error :: Io ( err. into ( ) ) ) ;
176179 }
177180 }
178181
@@ -269,7 +272,8 @@ where
269272impl crate :: data:: File {
270273 /// Returns an iterator over [`Entries`][crate::data::input::Entry], without making use of the memory mapping.
271274 pub fn streaming_iter ( & self ) -> Result < BytesToEntriesIter < impl io:: BufRead > , input:: Error > {
272- let reader = io:: BufReader :: with_capacity ( 4096 * 8 , fs:: File :: open ( & self . path ) ?) ;
275+ let reader =
276+ io:: BufReader :: with_capacity ( 4096 * 8 , fs:: File :: open ( & self . path ) . map_err ( hasher:: io:: Error :: from) ?) ;
273277 BytesToEntriesIter :: new_from_header (
274278 reader,
275279 input:: Mode :: Verify ,
0 commit comments