Refactor /pgen/1 to avoid drop & return
authorMegaBrutal <code+git@megabrutal.com>
Sun, 17 Jul 2022 18:15:00 +0000 (20:15 +0200)
committerMegaBrutal <code+git@megabrutal.com>
Sun, 17 Jul 2022 18:15:00 +0000 (20:15 +0200)
src/main.rs

index 293136508771f5ea1bf670e8ebf8be435fa143c2..302fb3a7f7d82853dea59ff172a47a2550e69c0b 100644 (file)
@@ -221,14 +221,13 @@ async fn img_pgen1(req: HttpRequest, path: web::Path<(u32, u32, u32)>, canvas1:
         let canvas = canvas_option.take().unwrap_or_else( || Canvas::new(dim_x, dim_y) );
         if (dim_x, dim_y) == canvas.img.dimensions() {
             let canvas = rgb_encode_to_canvas(canvas, percent_decode_str(&data).into_iter().borrow_mut())?;
-            canvas_option.insert(canvas).img.clone()
+            Ok(canvas_option.insert(canvas).img.clone())
         }
         else {
-            canvas_option.insert(canvas);
-            drop(canvas_option);
-            return Err(CanvasError::DimensionMismatch)?
+            _ = canvas_option.insert(canvas);
+            Err(CanvasError::DimensionMismatch)
         }
-    };
+    }?;
     let (tdim_x, tdim_y) = img.dimensions();
     let (tdim_x, tdim_y) = (tdim_x * scale, tdim_y * scale);
     let img = resize(&img, tdim_x, tdim_y, FilterType::Nearest);