thrifty/varint

Values

pub fn decode_varint(
  data: BitArray,
  byte_position: Int,
) -> Result(#(Int, Int), types.DecodeError)

Convert a list of byte integers to a BitArray by serial concatenation.

Inputs

  • bytes: list of integers each 0..255.

Outputs

  • BitArray concatenating the provided bytes. Decode a varint from a BitArray starting at a given byte position. Returns Ok(#(value, next_byte_position)) on success, or Error on failure.

Max length: 10 bytes for i64, 5 bytes for i32. Reads bytes LSB first, accumulating 7-bit groups.

pub fn encode_varint(n: Int) -> BitArray

Encode an unsigned integer as a varint BitArray. Returns a BitArray of 1-10 bytes (for i64).

Varint encoding: 7 bits per byte, MSB as continuation bit. Bytes are emitted LSB first.

Search Document