From 25eb15518cf1aab90be6ade47ff9aa482a099c6a Mon Sep 17 00:00:00 2001 From: Jared Forth Date: Wed, 8 Sep 2021 10:33:21 -0500 Subject: [PATCH] add result return type for Encoder #8 --- src/encoder.rs | 16 ++++++++-------- src/lib.rs | 8 ++++---- 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/src/encoder.rs b/src/encoder.rs index dc07afe..ce349fc 100644 --- a/src/encoder.rs +++ b/src/encoder.rs @@ -21,19 +21,19 @@ impl<'a> Encoder<'a> { #[cfg(feature = "img")] /// Creates a new encoder from the given image. - pub fn from_image(image: &'a DynamicImage) -> Self { + pub fn from_image(image: &'a DynamicImage) -> Result { match image { - DynamicImage::ImageLuma8(_) => { unreachable!() } - DynamicImage::ImageLumaA8(_) => { unreachable!() } + DynamicImage::ImageLuma8(_) => { Err("Unimplemented") } + DynamicImage::ImageLumaA8(_) => { Err("Unimplemented") } DynamicImage::ImageRgb8(image) => { - Self::from_rgb(image.as_ref(), image.width(), image.height()) + Ok(Self::from_rgb(image.as_ref(), image.width(), image.height())) } DynamicImage::ImageRgba8(image) => { - Self::from_rgba(image.as_ref(), image.width(), image.height()) + Ok(Self::from_rgba(image.as_ref(), image.width(), image.height())) } - DynamicImage::ImageBgr8(_) => { unreachable!() } - DynamicImage::ImageBgra8(_) => { unreachable!() } - _ => { unreachable!() } + DynamicImage::ImageBgr8(_) => { Err("Unimplemented") } + DynamicImage::ImageBgra8(_) => { Err("Unimplemented") } + _ => { Err("Unimplemented") } } } diff --git a/src/lib.rs b/src/lib.rs index e904a81..0bf9673 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -72,14 +72,14 @@ mod tests { #[test] fn encode_decode() { let test_image_no_alpha = generate_color_wheel(SIZE, SIZE, false); - let encoded = Encoder::from_image(&test_image_no_alpha).encode_lossless(); + let encoded = Encoder::from_image(&test_image_no_alpha).unwrap().encode_lossless(); let decoded = Decoder::new(encoded.deref()).decode().unwrap().to_image().to_rgb8(); assert_eq!(test_image_no_alpha.to_rgb8().deref(), decoded.deref()); let test_image_alpha = generate_color_wheel(SIZE, SIZE, true); - let encoded = Encoder::from_image(&test_image_alpha).encode_lossless(); + let encoded = Encoder::from_image(&test_image_alpha).unwrap().encode_lossless(); let decoded = Decoder::new(encoded.deref()).decode().unwrap().to_image().to_rgba8(); @@ -103,7 +103,7 @@ mod tests { #[test] fn get_info() { let test_image_no_alpha = generate_color_wheel(SIZE, SIZE, false); - let encoded = Encoder::from_image(&test_image_no_alpha).encode_lossless(); + let encoded = Encoder::from_image(&test_image_no_alpha).unwrap().encode_lossless(); let features = BitstreamFeatures::new(encoded.deref()).unwrap(); assert_eq!(features.width(), SIZE); @@ -113,7 +113,7 @@ mod tests { let test_image_alpha = generate_color_wheel(SIZE, SIZE, true); - let encoded = Encoder::from_image(&test_image_alpha).encode_lossless(); + let encoded = Encoder::from_image(&test_image_alpha).unwrap().encode_lossless(); let features = BitstreamFeatures::new(encoded.deref()).unwrap(); assert_eq!(features.width(), SIZE);