bitreader

Crates.iobitreader
lib.rsbitreader
version0.3.11
sourcesrc
created_at2016-08-09 20:09:14.423823
updated_at2024-10-22 19:13:30.517151
descriptionBitReader helps reading individual bits from a slice of bytes. You can read "unusual" numbers of bits from the byte slice, for example 13 bits at once. The reader internally keeps track of position within the buffer.
homepagehttps://github.com/irauta/bitreader
repositoryhttps://github.com/irauta/bitreader
max_upload_size
id5935
size45,743
cratesio-publishers (github:apertus-open-source-cinema:cratesio-publishers)

documentation

https://docs.rs/bitreader

README

BitReader

BitReader is a helper type to extract strings of bits from a slice of bytes.

Published Package Documentation Build Status

Here is how you read first a single bit, then three bits and finally four bits from a byte buffer:

use bitreader::BitReader;

let slice_of_u8 = &[0b1000_1111];
let mut reader = BitReader::new(slice_of_u8);

// You obviously should use try! or some other error handling mechanism here
let a_single_bit = reader.read_u8(1).unwrap(); // 1
let more_bits = reader.read_u8(3).unwrap(); // 0
let last_bits_of_byte = reader.read_u8(4).unwrap(); // 0b1111

You can naturally read bits from longer buffer of data than just a single byte.

As you read bits, the internal cursor of BitReader moves on along the stream of bits. Big endian format is assumed when reading the multi-byte values. BitReader supports reading maximum of 64 bits at a time (with read_u64).

License

Licensed under the Apache License, Version 2.0 or the MIT license, at your option.

Commit count: 76

cargo fmt