diff --git a/src/kra.rs b/src/kra.rs index 5e3d626..3642370 100644 --- a/src/kra.rs +++ b/src/kra.rs @@ -15,19 +15,9 @@ pub fn register() -> bool { } fn hook<'a>(reader: GenericReader<'a>) -> ImageResult> { - let mut zip = ZipArchive::new(reader).map_err(|e| { - ImageError::Decoding(DecodingError::new( - image::error::ImageFormatHint::PathExtension("kra".into()), - e, - )) - })?; + let mut zip = ZipArchive::new(reader).map_err(to_image_error)?; - let mut reader = zip.by_name("mergedimage.png").map_err(|e| { - ImageError::Decoding(DecodingError::new( - image::error::ImageFormatHint::PathExtension("kra".into()), - e, - )) - })?; + let mut reader = zip.by_name("mergedimage.png").map_err(to_image_error)?; // reading it all and wrapping it with a Cursor // is the only way I know to give it Seek @@ -39,3 +29,12 @@ fn hook<'a>(reader: GenericReader<'a>) -> ImageResult Ok(Box::new(image_reader.into_decoder()?)) } + +fn to_image_error( + e: impl Into>, +) -> ImageError { + ImageError::Decoding(DecodingError::new( + image::error::ImageFormatHint::PathExtension("kra".into()), + e, + )) +}