Skip to content

Commit

Permalink
add result return type for Encoder #8
Browse files Browse the repository at this point in the history
  • Loading branch information
jaredforth committed Sep 8, 2021
1 parent 81e42aa commit 25eb155
Show file tree
Hide file tree
Showing 2 changed files with 12 additions and 12 deletions.
16 changes: 8 additions & 8 deletions src/encoder.rs
Original file line number Diff line number Diff line change
Expand Up @@ -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<Self, &str> {
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") }
}
}

Expand Down
8 changes: 4 additions & 4 deletions src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -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();

Expand All @@ -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);
Expand All @@ -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);
Expand Down

0 comments on commit 25eb155

Please sign in to comment.