@@ -20,12 +20,12 @@ fn main() -> Result<(), Box<dyn Error>> {
2020 let file = std:: fs:: File :: open ( file_path) ?;
2121 let reader = BufReader :: with_capacity ( 8 * 1024 * 1024 , file) ;
2222 let mut item_index = 0 ;
23-
23+
2424 // Track the latest processed block number
2525 let mut latest_processed_block_number: Option < u64 > = None ;
26-
26+
2727 // Wrap the main processing logic to catch errors and print block number
28- let result = {
28+ let result: Result < ( ) , Box < dyn Error > > = ( || {
2929 let mut reader = node:: NodeReader :: new ( reader) ?;
3030 let header = reader. read_raw_header ( ) ?;
3131 println ! ( "Header bytes: {:?}" , header) ;
@@ -67,7 +67,7 @@ fn main() -> Result<(), Box<dyn Error>> {
6767
6868 // Update the latest processed block number
6969 latest_processed_block_number = Some ( block. slot ) ;
70-
70+
7171 // println!("Slot: {:?}", block.slot);
7272 // println!("Raw node: {:?}", raw_node);
7373 let mut entry_index: usize = 0 ;
@@ -259,22 +259,27 @@ fn main() -> Result<(), Box<dyn Error>> {
259259 Ok ( ( ) )
260260 } ) ?;
261261 }
262- } ;
263-
262+ } ) ( ) ;
263+
264264 // If there was an error, print the latest processed block number before exiting
265265 if let Err ( ref error) = result {
266266 match latest_processed_block_number {
267267 Some ( block_num) => {
268- eprintln ! ( "ERROR: Failed to process node from file. Latest processed block number: {}" , block_num) ;
268+ eprintln ! (
269+ "ERROR: Failed to process node from file. Latest processed block number: {}" ,
270+ block_num
271+ ) ;
269272 eprintln ! ( "Error details: {}" , error) ;
270273 }
271274 None => {
272275 eprintln ! ( "ERROR: Failed to process node from file. No blocks were successfully processed yet." ) ;
273276 eprintln ! ( "Error details: {}" , error) ;
274277 }
275278 }
279+ eprintln ! ( "Sleeping for 30 seconds before exit..." ) ;
280+ std:: thread:: sleep ( std:: time:: Duration :: from_secs ( 30 ) ) ;
276281 }
277-
282+
278283 result
279284}
280285
0 commit comments