From 6a82fcc9b48e0bf4efd3dc679c59a008937130a1 Mon Sep 17 00:00:00 2001 From: Matthias Schiffer Date: Tue, 15 Aug 2023 18:31:53 +0200 Subject: [PATCH] minedmap/tile_renderer: terminate on errors Only the processing step may fail for individual tiles (when a region is currently being saved when attempting to process it), the other steps should never fail. --- src/bin/minedmap/tile_renderer.rs | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/src/bin/minedmap/tile_renderer.rs b/src/bin/minedmap/tile_renderer.rs index 30276a8..a7c3121 100644 --- a/src/bin/minedmap/tile_renderer.rs +++ b/src/bin/minedmap/tile_renderer.rs @@ -265,11 +265,10 @@ impl<'a> TileRenderer<'a> { fs::create_dir_all(&self.config.tile_dir(TileKind::Map, 0))?; // Use par_bridge to process items in order (for better use of region cache) - regions.iter().par_bridge().for_each(|&coords| { - if let Err(err) = self.render_tile(coords) { - eprintln!("Failed to render tile {:?}: {:?}", coords, err); - } - }); + regions.iter().par_bridge().try_for_each(|&coords| { + self.render_tile(coords) + .with_context(|| format!("Failed to render tile {:?}", coords)) + })?; Ok(()) }