X-Git-Url: https://git.nihav.org/?a=blobdiff_plain;f=nihav-core%2Fsrc%2Fio%2Fbitreader.rs;h=6c786228c1ecf9465e387f27ab6516e7c406891d;hb=36ce88be3f590a876fe539c8f631a58af2ea2cac;hp=11633266068024d02fc339bba23be465033944a4;hpb=26aa3dd30a4b14d566a40d85139076d6fa4e9bb7;p=nihav.git diff --git a/nihav-core/src/io/bitreader.rs b/nihav-core/src/io/bitreader.rs index 1163326..6c78622 100644 --- a/nihav-core/src/io/bitreader.rs +++ b/nihav-core/src/io/bitreader.rs @@ -1,6 +1,6 @@ //! Bitstream reader functionality. //! -//! Bitstream reader operates on `&[u8]` and allows to read bits from the slice in different modes. +//! Bitstream reader operates on `&[u8]` and allows to read bits from the slice in different modes. //! //! # Examples //! @@ -9,7 +9,7 @@ //! use nihav_core::io::bitreader::{BitReader,BitReaderMode}; //! //! # use nihav_core::io::bitreader::BitReaderResult; -//! # fn foo() -> BitReaderResult { +//! # fn foo() -> BitReaderResult { //! let bits: [u8; 4] = [ 42, 43, 44, 45 ]; //! let mut br = BitReader::new(&bits, BitReaderMode::BE); //! let value = br.read(17)?; @@ -22,7 +22,7 @@ //! use nihav_core::io::bitreader::{BitReader,BitReaderMode}; //! //! # use nihav_core::io::bitreader::BitReaderResult; -//! # fn foo() -> BitReaderResult<()> { +//! # fn foo() -> BitReaderResult<()> { //! let bits: [u8; 4] = [ 42, 43, 44, 45 ]; //! let mut br = BitReader::new(&bits, BitReaderMode::BE); //! let num_skip_bits = br.read(3)?; @@ -35,7 +35,7 @@ /// Bitstream reading modes. -#[derive(Debug)] +#[derive(Debug,Clone,Copy)] pub enum BitReaderMode { /// The stream is big endian MSB first. BE, @@ -48,7 +48,7 @@ pub enum BitReaderMode { } /// A list specifying general bitstream reading errors. -#[derive(Debug)] +#[derive(Debug,Clone,Copy)] pub enum BitReaderError { /// The reader is at the end of bitstream. BitstreamEnd, @@ -64,7 +64,7 @@ use self::BitReaderError::*; pub type BitReaderResult = Result; /// Bitstream reader. -#[derive(Debug)] +#[derive(Debug,Clone)] pub struct BitReader<'a> { cache: u64, bits: u8, @@ -77,7 +77,7 @@ pub struct BitReader<'a> { impl<'a> BitReader<'a> { /// Constructs a new instance of bitstream reader. - /// + /// /// # Examples /// /// ``` @@ -210,7 +210,7 @@ impl<'a> BitReader<'a> { /// use nihav_core::io::bitreader::{BitReader,BitReaderMode}; /// /// # use nihav_core::io::bitreader::BitReaderResult; - /// # fn foo() -> BitReaderResult { + /// # fn foo() -> BitReaderResult { /// let bits: [u8; 4] = [ 42, 43, 44, 45 ]; /// let mut br = BitReader::new(&bits, BitReaderMode::BE); /// let value = br.read(17)?; @@ -270,7 +270,7 @@ impl<'a> BitReader<'a> { /// use nihav_core::io::bitreader::{BitReader,BitReaderMode}; /// /// # use nihav_core::io::bitreader::BitReaderResult; - /// # fn foo() -> BitReaderResult { + /// # fn foo() -> BitReaderResult { /// let bits: [u8; 4] = [ 42, 43, 44, 45 ]; /// let mut br = BitReader::new(&bits, BitReaderMode::BE); /// let peek_value = br.peek(8); // this should return 42 @@ -318,7 +318,7 @@ impl<'a> BitReader<'a> { /// use nihav_core::io::bitreader::{BitReader,BitReaderMode}; /// /// # use nihav_core::io::bitreader::BitReaderResult; - /// # fn foo() -> BitReaderResult { + /// # fn foo() -> BitReaderResult { /// let bits: [u8; 4] = [ 42, 43, 44, 45 ]; /// let mut br = BitReader::new(&bits, BitReaderMode::BE); /// br.seek(16)?; @@ -343,7 +343,7 @@ impl<'a> BitReader<'a> { /// use nihav_core::io::bitreader::{BitReader,BitReaderMode}; /// /// # use nihav_core::io::bitreader::BitReaderResult; - /// # fn foo() -> BitReaderResult<()> { + /// # fn foo() -> BitReaderResult<()> { /// let bits: [u8; 4] = [ 42, 43, 44, 45 ]; /// let mut br = BitReader::new(&bits, BitReaderMode::BE); /// br.skip(17)?; // now reader is at bit position 17