@@ -268,40 +268,41 @@ pub fn store_generated_content_if_different(
268268 let mut must_rewrite_file = true ;
269269
270270 // Check if equivalent file already exists without relying on filesystem timestamp.
271- let mut file_to_check =
272- if let Ok ( mut wrapper_file) = File :: options ( ) . read ( true ) . write ( true ) . open ( file_to_update) {
273- let existing_file_content = content_file_to_update. unwrap_or_else ( || {
274- let mut content = Vec :: with_capacity ( fresh_content. len ( ) ) ;
275- wrapper_file. read_to_end ( content. as_mut ( ) ) . unwrap ( ) ;
276- content
277- } ) ;
278-
279- if !force_regeneration {
280- let mut existing_wrapper_hasher = hash_map:: DefaultHasher :: new ( ) ;
281- existing_wrapper_hasher. write ( existing_file_content. as_ref ( ) ) ;
282-
283- let mut wrapper_h_hasher = hash_map:: DefaultHasher :: new ( ) ;
284- wrapper_h_hasher. write ( fresh_content) ;
285-
286- // Check if wrappers are the same
287- if existing_wrapper_hasher. finish ( ) == wrapper_h_hasher. finish ( ) {
288- must_rewrite_file = false ;
289- }
290- }
291-
292- // Reset file cursor if it's going to be rewritten
293- if must_rewrite_file {
294- wrapper_file. set_len ( 0 ) . expect ( "Could not set file len" ) ;
295- wrapper_file
296- . seek ( SeekFrom :: Start ( 0 ) )
297- . expect ( "Could not seek file to beginning" ) ;
271+ let mut file_to_check = if let Ok ( mut wrapper_file) =
272+ File :: options ( ) . read ( true ) . write ( true ) . open ( file_to_update)
273+ {
274+ let existing_file_content = content_file_to_update. unwrap_or_else ( || {
275+ let mut content = Vec :: with_capacity ( fresh_content. len ( ) ) ;
276+ wrapper_file. read_to_end ( content. as_mut ( ) ) . unwrap ( ) ;
277+ content
278+ } ) ;
279+
280+ if !force_regeneration {
281+ let mut existing_wrapper_hasher = hash_map:: DefaultHasher :: new ( ) ;
282+ existing_wrapper_hasher. write ( existing_file_content. as_ref ( ) ) ;
283+
284+ let mut wrapper_h_hasher = hash_map:: DefaultHasher :: new ( ) ;
285+ wrapper_h_hasher. write ( fresh_content) ;
286+
287+ // Check if wrappers are the same
288+ if existing_wrapper_hasher. finish ( ) == wrapper_h_hasher. finish ( ) {
289+ must_rewrite_file = false ;
298290 }
291+ }
299292
293+ // Reset file cursor if it's going to be rewritten
294+ if must_rewrite_file {
295+ wrapper_file. set_len ( 0 ) . expect ( "Could not set file len" ) ;
300296 wrapper_file
301- } else {
302- File :: create ( file_to_update)
303- . unwrap_or_else ( |_| panic ! ( "Could not create {}" , file_to_update. display( ) ) )
304- } ;
297+ . seek ( SeekFrom :: Start ( 0 ) )
298+ . expect ( "Could not seek file to beginning" ) ;
299+ }
300+
301+ wrapper_file
302+ } else {
303+ File :: create ( file_to_update)
304+ . unwrap_or_else ( |err| panic ! ( "Could not create {}: {err:?}" , file_to_update. display( ) ) )
305+ } ;
305306
306307 if must_rewrite_file {
307308 println ! (
@@ -315,7 +316,9 @@ pub fn store_generated_content_if_different(
315316
316317 file_to_check
317318 . write_all ( fresh_content)
318- . unwrap_or_else ( |_| panic ! ( "Unable to write in {}" , file_to_update. display( ) ) ) ;
319+ . unwrap_or_else ( |err| {
320+ panic ! ( "Unable to write in {}: {err:?}" , file_to_update. display( ) )
321+ } ) ;
319322 }
320323}
321324
0 commit comments