diff --git a/src/decode.rs b/src/decode.rs index d88af6a..eb5769c 100644 --- a/src/decode.rs +++ b/src/decode.rs @@ -133,7 +133,7 @@ fn qoi_decode_impl_slice_all( (4, 4) => qoi_decode_impl_slice::<4, true>(data, out), _ => { cold(); - return Err(Error::InvalidChannels { channels }); + Err(Error::InvalidChannels { channels }) } } } @@ -174,28 +174,28 @@ impl<'a> QoiDecoder<'a> { } #[inline] - pub fn with_channels(mut self, channels: u8) -> Self { + pub const fn with_channels(mut self, channels: u8) -> Self { self.channels = channels; self } #[inline] - pub fn channels(&self) -> u8 { + pub const fn channels(&self) -> u8 { self.channels } #[inline] - pub fn header(&self) -> &Header { + pub const fn header(&self) -> &Header { &self.header } #[inline] - pub fn data(self) -> &'a [u8] { + pub const fn data(self) -> &'a [u8] { self.data } #[inline] - pub fn decode_to_buf(&mut self, mut buf: impl AsMut<[u8]>) -> Result<()> { + pub fn decode_to_buf(&mut self, mut buf: impl AsMut<[u8]>) -> Result { let buf = buf.as_mut(); let size = self.header.n_pixels() * self.channels as usize; if unlikely(buf.len() < size) { @@ -204,7 +204,7 @@ impl<'a> QoiDecoder<'a> { let n_read = qoi_decode_impl_slice_all(self.data, buf, self.channels, self.header.channels)?; self.data = &self.data[n_read..]; // can't panic - Ok(()) + Ok(size) } #[inline]