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<usize> {
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]