From cd117ba70cd29de3a874a8874a68b3811b3cad21 Mon Sep 17 00:00:00 2001 From: retropikzel Date: Thu, 26 Feb 2026 08:22:18 +0200 Subject: [PATCH] Add reference to leb128 --- retropikzel/leb128/README.md | 43 ++++++++++++++++++++++++++++++++++++ retropikzel/leb128/VERSION | 2 +- 2 files changed, 44 insertions(+), 1 deletion(-) diff --git a/retropikzel/leb128/README.md b/retropikzel/leb128/README.md index 1bc89f6..2c33d3f 100644 --- a/retropikzel/leb128/README.md +++ b/retropikzel/leb128/README.md @@ -1,6 +1,49 @@ LEB128 or Little Endian Base 128 is a variable-length code compression used to store arbitrarily large integers in a small number of bytes. +(**integer->leb128** value) + +*value* must be exact integer. Returns the integer as leb128 +bytevector. + + + +(**leb128->integer** bv . start-index) + +*bv* must be bytevector. Reading of leb128 values start at index 0, unless +*start-index* is given. *start-index* must be exact integer. Returns exact +integer of leb128 value. + + + +(**leb128->integer-and-length** bv . start-index) + +Sams as leb128->integer but returns a pair with integer as car and leb128 +bytevector length, as in how many bytes long the leb128 was, as cdr. + + + +(**integer->uleb128** value) + +*value* must be exact positive integer or 0. Returns the integer as leb128 +bytevector. + + + +(**uleb128->integer** bv) + +*bv* must be bytevector. Reading of uleb128 values start at index 0, unless +*start-index* is given. *start-index* must be exact integer. Returns exact +positive integer or 0 of uleb128 value. + + + +(**uleb128->integer-and-length** bv) + +Sams as uleb128->integer but returns a pair with integer as car and uleb128 +bytevector length, as in how many bytes long the leb128 was, as cdr. + + Resources used: https://en.wikipedia.org/wiki/LEB128 - Mostly turning pseudocode from here to Scheme diff --git a/retropikzel/leb128/VERSION b/retropikzel/leb128/VERSION index 6e8bf73..3eefcb9 100644 --- a/retropikzel/leb128/VERSION +++ b/retropikzel/leb128/VERSION @@ -1 +1 @@ -0.1.0 +1.0.0