Original zlib code: https://github.com/madler/zlib/blob/develop/contrib/puff/puf...
The code of the article: https://github.com/ieviev/mini-gzip/blob/main/src/main.rs
Top level declarations of the C code:
#define MAXBITS 15
#define MAXLCODES 286
#define MAXDCODES 30
#define MAXCODES
#define FIXLCODES 288
struct state
local int bits(struct state *s, int need)
local int stored(struct state *s)
struct huffman
local int decode(...)
local int construct(...)
local int codes(...)
local int fixed(...)
local int dynamic(...)
int puff(...)
Top level declarations of the Rust code: const MAXBITS: usize = 15;
const MAXLCODES: usize = 286;
const MAXDCODES: usize = 30;
const FIXLCODES: usize = 288;
const MAXDIST: usize = 32768;
struct State<'a>
struct Huffman<'a>
fn decode
fn construct
fn codes
fn fixed
fn dynamic
fn stored
pub fn inflate