export function readVarInt(bytes) { let mask128 = 128 let varIntSize = 0 for (let i = 0; i < bytes.length; i++) { if ((bytes[i] & mask128) > 0) { varIntSize++ } else { varIntSize++ break } }
let varInt = 0 let mask127 = 127
for (let i = 0; i < varIntSize; i++) { varInt += (bytes[i] & mask127) << (i * 7) }
return { varInt, varIntSize }}
export function makeVarInt(num) { let numberOfBits = 0
for (let i = 0; i < 64; i++) { if ((num >>> i) > 0) { numberOfBits++ } else { numberOfBits++ break } }
let varIntBytes = new Uint8Array(Math.floor(numberOfBits / 7) + 1) let mask128 = 128 for (let i = 0; i < varIntBytes.length; i++) { varIntBytes[i] = (num >>> (i * 7)) | mask128 }
let mask127 = 127 varIntBytes[varIntBytes.length-1] = varIntBytes[varIntBytes.length-1] & mask127
return varIntBytes}