diff --git a/src/main.rs b/src/main.rs index d31b558..53e7ac9 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,11 +1,19 @@ -use std::{env, ffi::OsStr, fs, io::Write, path::Path}; +use std::{ + env, + ffi::OsStr, + fs, + io::{Read, Write}, + path::Path, +}; use iced::{ Alignment, Color, Element, Length, Renderer, Subscription, Task, Theme, color, event, keyboard::{self, Key, key}, theme, widget, window, }; -use image::{DynamicImage, EncodableLayout, ImageDecoder, ImageReader, RgbaImage, imageops}; +use image::{ + DynamicImage, EncodableLayout, ImageDecoder, ImageReader, RgbImage, RgbaImage, imageops, +}; use jpegxl_rs::image::ToDynamic; use rfd::FileDialog; @@ -81,24 +89,20 @@ impl State { } Key::Character("r") => { - match self.image.as_ref() { - None => self.error = Some("no image to rotate".into()), - Some(image) => { - self.error = None; - self.image = Some(imageops::rotate90(image)); - return self.allocate_image(); - } + let Some(image) = self.image.as_ref() else { + eprintln!("no image to rotate"); + return Task::none(); }; + self.image = Some(imageops::rotate90(image)); + return self.allocate_image(); } Key::Character("i") => { - match self.image.as_mut() { - None => self.error = Some("no image to invert".into()), - Some(image) => { - self.error = None; - imageops::invert(image); - return self.allocate_image(); - } + let Some(image) = self.image.as_mut() else { + eprintln!("no image to invert"); + return Task::none(); }; + imageops::invert(image); + return self.allocate_image(); } Key::Character("s") => { @@ -145,14 +149,12 @@ impl State { path.display() )); } - Err(e) => { - return Some(format!("failed to decode jxl '{}': {e}", path.display())); - } + Err(e) => return Some(format!("faled to decode '{}' {e}", path.display())), } } _ => { - let reader = match ImageReader::open(path) { + let reader = match ImageReader::open(&path) { Ok(r) => r, Err(e) => { return Some(format!( @@ -272,7 +274,7 @@ impl State { widget::image::allocate(widget::image::Handle::from_rgba( image.width(), image.height(), - unsafe { std::mem::transmute::<&[u8], &'static [u8]>(image.as_bytes()) }, + unsafe { std::mem::transmute::<_, &'static [u8]>(image.as_bytes()) }, )) .map(Message::ImageDisplayReady) }