1
0
Fork 0
mirror of https://codeberg.org/icewind/bitbuffer.git synced 2026-06-03 16:44:06 +02:00

impl ReadSized for Option<T>

This commit is contained in:
Robin Appelman 2019-02-28 22:20:20 +01:00
commit 29ca7e359e

View file

@ -246,6 +246,16 @@ impl<E: Endianness, T: BitRead<E>> BitRead<E> for Option<T> {
} }
} }
impl<E: Endianness, T: BitReadSized<E>> BitReadSized<E> for Option<T> {
fn read(stream: &mut BitStream<E>, size: usize) -> Result<Self> {
if stream.read()? {
Ok(Some(stream.read_sized(size)?))
} else {
Ok(None)
}
}
}
impl<E: Endianness> BitReadSized<E> for BitStream<E> { impl<E: Endianness> BitReadSized<E> for BitStream<E> {
#[inline(always)] #[inline(always)]
fn read(stream: &mut BitStream<E>, size: usize) -> Result<Self> { fn read(stream: &mut BitStream<E>, size: usize) -> Result<Self> {