pub struct BitCounter<N, E: Endianness> { /* private fields */ }
👎Deprecated since 4.0.0: use of BitsWritten is preferred
Expand description
For counting the number of bits written but generating no output.
§Example
use bitstream_io::{BigEndian, BitWrite, BitCounter};
let mut writer: BitCounter<u32, BigEndian> = BitCounter::new();
writer.write_var(1, 0b1u8).unwrap();
writer.write_var(2, 0b01u8).unwrap();
writer.write_var(5, 0b10111u8).unwrap();
assert_eq!(writer.written(), 8);
Implementations§
Source§impl<N: Default, E: Endianness> BitCounter<N, E>
impl<N: Default, E: Endianness> BitCounter<N, E>
Source§impl<N: Copy, E: Endianness> BitCounter<N, E>
impl<N: Copy, E: Endianness> BitCounter<N, E>
Source§impl<N, E: Endianness> BitCounter<N, E>
impl<N, E: Endianness> BitCounter<N, E>
Sourcepub fn into_written(self) -> N
pub fn into_written(self) -> N
Returns number of bits written
Trait Implementations§
Source§impl<N, E> BitWrite for BitCounter<N, E>where
E: Endianness,
N: Counter,
impl<N, E> BitWrite for BitCounter<N, E>where
E: Endianness,
N: Counter,
Source§fn write_const<const BITS: u32, const VALUE: u32>(&mut self) -> Result<()>
fn write_const<const BITS: u32, const VALUE: u32>(&mut self) -> Result<()>
Writes the given constant value to the stream with
the given number of bits. Read more
Source§fn write_unsigned<const BITS: u32, U>(&mut self, value: U) -> Result<()>where
U: UnsignedInteger,
fn write_unsigned<const BITS: u32, U>(&mut self, value: U) -> Result<()>where
U: UnsignedInteger,
Writes an unsigned value to the stream using the given
const number of bits. Read more
Source§fn write_signed<const BITS: u32, S>(&mut self, value: S) -> Result<()>where
S: SignedInteger,
fn write_signed<const BITS: u32, S>(&mut self, value: S) -> Result<()>where
S: SignedInteger,
Writes a twos-complement signed value to the stream
with the given const number of bits. Read more
Source§fn write_unsigned_counted<const MAX: u32, U>(
&mut self,
count: BitCount<MAX>,
value: U,
) -> Result<()>where
U: UnsignedInteger,
fn write_unsigned_counted<const MAX: u32, U>(
&mut self,
count: BitCount<MAX>,
value: U,
) -> Result<()>where
U: UnsignedInteger,
Writes a signed value to the stream with
the given number of bits. Read more
Source§fn write_signed_counted<const MAX: u32, S>(
&mut self,
bits: impl TryInto<SignedBitCount<MAX>>,
value: S,
) -> Result<()>where
S: SignedInteger,
fn write_signed_counted<const MAX: u32, S>(
&mut self,
bits: impl TryInto<SignedBitCount<MAX>>,
value: S,
) -> Result<()>where
S: SignedInteger,
Writes an unsigned value to the stream with
the given number of bits. Read more
Source§fn write_from<V>(&mut self, value: V) -> Result<()>where
V: Primitive,
fn write_from<V>(&mut self, value: V) -> Result<()>where
V: Primitive,
Writes whole value to the stream whose size in bits
is equal to its type’s size. Read more
Source§fn write_as_from<F, V>(&mut self, value: V) -> Result<()>where
F: Endianness,
V: Primitive,
fn write_as_from<F, V>(&mut self, value: V) -> Result<()>where
F: Endianness,
V: Primitive,
Writes whole value to the stream whose size in bits
is equal to its type’s size in an endianness that may
be different from the stream’s endianness. Read more
Source§fn pad(&mut self, bits: u32) -> Result<()>
fn pad(&mut self, bits: u32) -> Result<()>
Pads the stream by writing 0 over the given number of bits. Read more
Source§fn write_bytes(&mut self, buf: &[u8]) -> Result<()>
fn write_bytes(&mut self, buf: &[u8]) -> Result<()>
Writes the entirety of a byte buffer to the stream. Read more
Source§fn write_unary<const STOP_BIT: u8>(&mut self, value: u32) -> Result<()>
fn write_unary<const STOP_BIT: u8>(&mut self, value: u32) -> Result<()>
Writes
value
number of non STOP_BIT
bits to the stream
and then writes a STOP_BIT
. This field is variably-sized.
STOP_BIT
must be 0 or 1. Read moreSource§fn byte_aligned(&self) -> bool
fn byte_aligned(&self) -> bool
Returns true if the stream is aligned at a whole byte. Read more
Source§fn write<const BITS: u32, I>(&mut self, value: I) -> Result<()>where
I: Integer,
fn write<const BITS: u32, I>(&mut self, value: I) -> Result<()>where
I: Integer,
Writes a signed or unsigned value to the stream using the given
const number of bits. Read more
Source§fn write_var<I>(&mut self, bits: u32, value: I) -> Result<()>where
I: Integer,
fn write_var<I>(&mut self, bits: u32, value: I) -> Result<()>where
I: Integer,
Writes a signed or unsigned value to the stream using the given
number of bits. Read more
Source§fn write_unsigned_var<U>(&mut self, bits: u32, value: U) -> Result<()>where
U: UnsignedInteger,
fn write_unsigned_var<U>(&mut self, bits: u32, value: U) -> Result<()>where
U: UnsignedInteger,
Writes an unsigned value to the stream using the given
number of bits. Read more
Source§fn write_signed_var<S>(&mut self, bits: u32, value: S) -> Result<()>where
S: SignedInteger,
fn write_signed_var<S>(&mut self, bits: u32, value: S) -> Result<()>where
S: SignedInteger,
Writes a twos-complement signed value to the stream
with the given number of bits. Read more
Source§fn write_count<const MAX: u32>(&mut self, _: BitCount<MAX>) -> Result<()>
fn write_count<const MAX: u32>(&mut self, _: BitCount<MAX>) -> Result<()>
Writes the given bit count to the stream
with the necessary maximum number of bits. Read more
Source§fn write_counted<const MAX: u32, I>(
&mut self,
bits: BitCount<MAX>,
value: I,
) -> Result<()>
fn write_counted<const MAX: u32, I>( &mut self, bits: BitCount<MAX>, value: I, ) -> Result<()>
Writes a signed or unsigned value to the stream with
the given number of bits. Read more
Source§fn build<T: ToBitStream>(&mut self, build: &T) -> Result<(), T::Error>
fn build<T: ToBitStream>(&mut self, build: &T) -> Result<(), T::Error>
Builds and writes complex type
Source§fn build_with<'a, T: ToBitStreamWith<'a>>(
&mut self,
build: &T,
context: &T::Context,
) -> Result<(), T::Error>
fn build_with<'a, T: ToBitStreamWith<'a>>( &mut self, build: &T, context: &T::Context, ) -> Result<(), T::Error>
Builds and writes complex type with context
Source§fn byte_align(&mut self) -> Result<()>
fn byte_align(&mut self) -> Result<()>
Pads the stream with 0 bits until it is aligned at a whole byte.
Does nothing if the stream is already aligned. Read more
Source§impl<N: Default, E: Default + Endianness> Default for BitCounter<N, E>
impl<N: Default, E: Default + Endianness> Default for BitCounter<N, E>
Source§fn default() -> BitCounter<N, E>
fn default() -> BitCounter<N, E>
Returns the “default value” for a type. Read more
Auto Trait Implementations§
impl<N, E> Freeze for BitCounter<N, E>where
N: Freeze,
impl<N, E> RefUnwindSafe for BitCounter<N, E>where
N: RefUnwindSafe,
E: RefUnwindSafe,
impl<N, E> Send for BitCounter<N, E>
impl<N, E> Sync for BitCounter<N, E>
impl<N, E> Unpin for BitCounter<N, E>
impl<N, E> UnwindSafe for BitCounter<N, E>where
N: UnwindSafe,
E: UnwindSafe,
Blanket Implementations§
Source§impl<W> BitWrite2 for Wwhere
W: BitWrite,
impl<W> BitWrite2 for Wwhere
W: BitWrite,
Source§fn write<I>(&mut self, bits: u32, value: I) -> Result<(), Error>where
I: Integer,
fn write<I>(&mut self, bits: u32, value: I) -> Result<(), Error>where
I: Integer,
Writes a signed or unsigned value to the stream using the given
number of bits. Read more
Source§fn write_out<const BITS: u32, I>(&mut self, value: I) -> Result<(), Error>where
I: Integer,
fn write_out<const BITS: u32, I>(&mut self, value: I) -> Result<(), Error>where
I: Integer,
Writes a signed or unsigned value to the stream using the given
const number of bits. Read more
Source§fn write_unsigned<U>(&mut self, bits: u32, value: U) -> Result<(), Error>where
U: UnsignedInteger,
fn write_unsigned<U>(&mut self, bits: u32, value: U) -> Result<(), Error>where
U: UnsignedInteger,
Writes an unsigned value to the stream using the given
number of bits. Read more
Source§fn write_unsigned_out<const BITS: u32, U>(
&mut self,
value: U,
) -> Result<(), Error>where
U: UnsignedInteger,
fn write_unsigned_out<const BITS: u32, U>(
&mut self,
value: U,
) -> Result<(), Error>where
U: UnsignedInteger,
Writes an unsigned value to the stream using the given
const number of bits. Read more
Source§fn write_signed<S>(&mut self, bits: u32, value: S) -> Result<(), Error>where
S: SignedInteger,
fn write_signed<S>(&mut self, bits: u32, value: S) -> Result<(), Error>where
S: SignedInteger,
Writes a twos-complement signed value to the stream
with the given number of bits. Read more
Source§fn write_signed_out<const BITS: u32, S>(
&mut self,
value: S,
) -> Result<(), Error>where
S: SignedInteger,
fn write_signed_out<const BITS: u32, S>(
&mut self,
value: S,
) -> Result<(), Error>where
S: SignedInteger,
Writes a twos-complement signed value to the stream
with the given const number of bits. Read more
Source§fn write_from<V>(&mut self, value: V) -> Result<(), Error>where
V: Primitive,
fn write_from<V>(&mut self, value: V) -> Result<(), Error>where
V: Primitive,
Writes whole value to the stream whose size in bits
is equal to its type’s size. Read more
Source§fn write_as_from<F, V>(&mut self, value: V) -> Result<(), Error>where
F: Endianness,
V: Primitive,
fn write_as_from<F, V>(&mut self, value: V) -> Result<(), Error>where
F: Endianness,
V: Primitive,
Writes whole value to the stream whose size in bits
is equal to its type’s size in an endianness that may
be different from the stream’s endianness. Read more
Source§fn pad(&mut self, bits: u32) -> Result<(), Error>
fn pad(&mut self, bits: u32) -> Result<(), Error>
Pads the stream by writing 0 over the given number of bits. Read more
Source§fn write_bytes(&mut self, buf: &[u8]) -> Result<(), Error>
fn write_bytes(&mut self, buf: &[u8]) -> Result<(), Error>
Writes the entirety of a byte buffer to the stream. Read more
Source§fn write_unary0(&mut self, value: u32) -> Result<(), Error>
fn write_unary0(&mut self, value: u32) -> Result<(), Error>
Writes
value
number of 1 bits to the stream
and then writes a 0 bit. This field is variably-sized. Read moreSource§fn write_unary1(&mut self, value: u32) -> Result<(), Error>
fn write_unary1(&mut self, value: u32) -> Result<(), Error>
Writes
value
number of 0 bits to the stream
and then writes a 1 bit. This field is variably-sized. Read moreSource§fn byte_aligned(&self) -> bool
fn byte_aligned(&self) -> bool
Returns true if the stream is aligned at a whole byte.
Source§fn byte_align(&mut self) -> Result<(), Error>
fn byte_align(&mut self) -> Result<(), Error>
Pads the stream with 0 bits until it is aligned at a whole byte.
Does nothing if the stream is already aligned. Read more
Source§fn build<T: ToBitStream>(&mut self, build: &T) -> Result<(), T::Error>where
Self: BitWrite,
fn build<T: ToBitStream>(&mut self, build: &T) -> Result<(), T::Error>where
Self: BitWrite,
Builds and writes complex type
Source§fn build_with<'a, T: ToBitStreamWith<'a>>(
&mut self,
build: &T,
context: &T::Context,
) -> Result<(), T::Error>where
Self: BitWrite,
fn build_with<'a, T: ToBitStreamWith<'a>>(
&mut self,
build: &T,
context: &T::Context,
) -> Result<(), T::Error>where
Self: BitWrite,
Builds and writes complex type with context
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more