decodeVarint
import { decodeVarint } from "jsr:@ende/encoding";function
function decodeVarint(buf: Uint8Array, offset: number = 0): [bigint, number]Given a non empty buf, starting at offset (default: 0), begin decoding bytes as
Varint encoded bytes, for a maximum of 10 bytes (offset + 10). The returned
tuple is of the decoded varint 32-bit number, and the new offset with which
to continue decoding other data.
If a bigint in return is undesired, the decode32 function will return a
number, but this should only be used in cases where the varint is
assured to be 32-bits. If in doubt, use decode().
To know how many bytes the Varint took to encode, simply negate offset
from the returned new offset.
buf: Uint8ArrayThe buffer to decode from.
offset: number = 0The offset to start decoding from.
Returns
A tuple of the decoded varint 64-bit number, and the new offset.
Example: Usage
import { decodeVarint } from "@ende/encoding/varint";
import { assertEquals } from "@ende/assert";
const buf = new Uint8Array([0x8E, 0x02]);
assertEquals(decodeVarint(buf), [270n, 2]);