Module byte_decode

Module byte_decode 

Source
Expand description

Byte oriented decoding: Oppposed to crate::bit_decode this assumes that the input stream comes in bigger chunks (u8/u16/u32/u64) rather than single bits and takes advantage (speed) of this fact.

One drawback: We assume that the block of fibonacci encoding fits neatly into (u8/u16/u32/u64) and we dont need access to any possible trailing bits (containing some other data to be decoded differently).

Modules§

bare_metal_16single_faster
Fibonacci-decodes a single u16 via a lookup table
bare_metal_3264_stream
Contains Dirty32 and Dirty64, which both take a stream of u32/u64 and fibonacci-decode those numbers bit by bit
byte_manipulation
This deals with the bare metal of reading single bits from the fibonacci encoding
bytestream_transform
Utilities to deal with bytestreams originating from streams of uints.
faster
Fast fibonacci decoding using lookup tables.
partial
Decoding a fibonacci number in several steps. Each step will create/update a Partial decoding result and finally, once 11 is encountered will result in a decoded number
u64_fibdecoder
Repeatedly reads 8bytes into a u64 and decodes those using the [DirtyGenericSingle].
u64_fibdecoder_refactor
Repeatedly reads 8bytes into a u64 and decodes those using the [Dirty64Single].

Traits§

FbDecNew
Marker trait for Fibonacci decoders. This is an iterator over u64 (the decoded integers), allows you to get back the intput iterator once done with decoding