Resolve clippy warnings
authorMegaBrutal <code+git@megabrutal.com>
Sat, 15 Oct 2022 17:30:00 +0000 (19:30 +0200)
committerMegaBrutal <code+git@megabrutal.com>
Sat, 15 Oct 2022 17:30:00 +0000 (19:30 +0200)
src/main.rs

index 5ade30f73af82626af7100dd08d06d66ff51e4c6..f83dc74ea0105c630c49a11c381b5285148b3acf 100644 (file)
@@ -84,12 +84,12 @@ impl From<ImageError> for CanvasError {
 }
 
 struct ToRgbIter<'a, T> where T: AsPrimitive<u8> {
-    iter: Box<&'a mut dyn Iterator<Item = T>>
+    iter: &'a mut dyn Iterator<Item = T>
 }
 
 impl<'a, T: AsPrimitive<u8>> ToRgbIter<'a, T> {
-    fn new(data: &'a mut (dyn Iterator<Item = T>)) -> ToRgbIter<T> {
-        ToRgbIter { iter: Box::new(data) }
+    fn new(iter: &'a mut (dyn Iterator<Item = T>)) -> ToRgbIter<T> {
+        ToRgbIter { iter }
     }
 }
 
@@ -97,8 +97,8 @@ impl<T: AsPrimitive<u8> + Zero> Iterator for ToRgbIter<'_, T> {
     type Item = Rgb<u8>;
     fn next(&mut self) -> Option<Rgb<u8>> {
         if let Some(r) = self.iter.next() {
-            let g = self.iter.next().unwrap_or(T::zero());
-            let b = self.iter.next().unwrap_or(T::zero());
+            let g = self.iter.next().unwrap_or_else(T::zero);
+            let b = self.iter.next().unwrap_or_else(T::zero);
             Some(Rgb([r.as_(), g.as_(), b.as_()]))
         }
         else {
@@ -169,7 +169,7 @@ fn rgb_encode_to_canvas(mut canvas: Canvas, data: &mut dyn Iterator<Item = u8>)
             Some(pixel) => pixel,
             None => {
                 pixels = canvas.img.pixels_mut().skip(0);
-                pixels.next().ok_or(ImageError::dimension_error())?
+                pixels.next().ok_or_else(ImageError::dimension_error)?
             }
         };
         dp.0 = sp.0;
@@ -207,7 +207,7 @@ fn apply_to_canvas<'a, F>(f: F, canvas_option: &'a mut Option<Canvas>, dimension
         }
     }?;
 
-    Ok(canvas_option.insert(f(canvas, percent_decode_str(&data).into_iter().borrow_mut())?))
+    Ok(canvas_option.insert(f(canvas, percent_decode_str(data).into_iter().borrow_mut())?))
 }
 
 fn make_png(dim_x: u32, dim_y: u32, scale: u32, data: &mut dyn Iterator<Item = u8>) -> Result<Cursor<Vec<u8>>, ImageError> {
@@ -239,8 +239,8 @@ fn image_to_cursor(img: RgbImage, scale: u32) -> Result<Cursor<Vec<u8>>, ImageEr
 
 #[get("/gen/0/{data}")]
 async fn img_gen0(req: HttpRequest) -> Result<impl Responder> {
-    let data = req.uri().path().split("/").skip(3).next().unwrap();
-    let cursor = make_png(32, 32, 16, percent_decode_str(&data).into_iter().borrow_mut())?;
+    let data = req.uri().path().split('/').nth(3).unwrap();
+    let cursor = make_png(32, 32, 16, percent_decode_str(data).into_iter().borrow_mut())?;
     Ok(HttpResponse::build(StatusCode::OK)
        .content_type("image/png")
        .body(cursor.into_inner()))
@@ -249,8 +249,8 @@ async fn img_gen0(req: HttpRequest) -> Result<impl Responder> {
 #[get("/gen/1/{dim_x}/{dim_y}/{scale}/{data}")]
 async fn img_gen1(req: HttpRequest, path: web::Path<(u32, u32, u32)>) -> Result<impl Responder> {
     let (dim_x, dim_y, scale) = path.into_inner();
-    let data = req.uri().path().split("/").skip(6).next().unwrap();
-    let cursor = make_png(dim_x, dim_y, scale, percent_decode_str(&data).into_iter().borrow_mut())?;
+    let data = req.uri().path().split('/').nth(6).unwrap();
+    let cursor = make_png(dim_x, dim_y, scale, percent_decode_str(data).into_iter().borrow_mut())?;
     Ok(HttpResponse::build(StatusCode::OK)
        .content_type("image/png")
        .body(cursor.into_inner()))
@@ -289,7 +289,7 @@ async fn img_gen3(req: HttpRequest, path: web::Path<u32>) -> Result<impl Respond
 
 #[get("/pgen/0/{data}")]
 async fn img_pgen0(req: HttpRequest, canvas0: web::Data<Arc<Mutex<Canvas0>>>) -> Result<impl Responder> {
-    let data = req.uri().path().split("/").skip(3).next().unwrap();
+    let data = req.uri().path().split('/').nth(3).unwrap();
     let scale = 16;
     let img: RgbImage = ({
         let canvas_option = &mut *canvas0.lock().unwrap();
@@ -304,7 +304,7 @@ async fn img_pgen0(req: HttpRequest, canvas0: web::Data<Arc<Mutex<Canvas0>>>) ->
 #[get("/pgen/1/{dim_x}/{dim_y}/{scale}/{data}")]
 async fn img_pgen1(req: HttpRequest, path: web::Path<(u32, u32, u32)>, canvas1: web::Data<Arc<Mutex<Canvas1>>>) -> Result<impl Responder> {
     let (dim_x, dim_y, scale) = path.into_inner();
-    let data = req.uri().path().split("/").skip(6).next().unwrap();
+    let data = req.uri().path().split('/').nth(6).unwrap();
     let img: RgbImage = ({
         let canvas_option = &mut *canvas1.lock().unwrap();
         Ok(apply_to_canvas( |c, d| to_canvasresult(rgb_encode_to_canvas(c, d)), &mut canvas_option.0, Some((dim_x, dim_y)), data)?.img.clone())
@@ -369,7 +369,7 @@ async fn pdrop(canvas_id: web::Path<u8>,
         1 => canvas1.lock().unwrap().0.take(),
         2 => canvas2.lock().unwrap().0.take(),
         _ => None
-    }.ok_or_else( || CanvasError::NotExists )?;
+    }.ok_or(CanvasError::NotExists)?;
     Ok(HttpResponse::build(StatusCode::OK)
        .body(format!("Canvas {} dropped.", canvas_id)))
 }