use bitstream_io::{BitReader, Endianness};
use std::io::{self, Read, Seek, SeekFrom};
pub(crate) trait BitReaderExt {
fn remaining_bits(&mut self) -> io::Result<u64>;
}
impl<R, E> BitReaderExt for BitReader<R, E>
where
R: Read + Seek,
E: Endianness,
{
fn remaining_bits(&mut self) -> io::Result<u64> {
let current_pos = self.position_in_bits()?;
let total_bits = self.seek_bits(SeekFrom::End(0))?;
self.seek_bits(SeekFrom::Start(current_pos))?;
Ok(total_bits - current_pos)
}
}