Another dev who doesn’t show respect to what has been done and expect a particular language will do wonders for him. Also I don’t see this is much better in term of readability.
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 inflateit's just convenient configuration macros and generic procedures names being reused to implement the steps for the DEFLATE algorithm.
There are only finites ways for you to express a piece of code in a language.