This module provides functions to convert signed integers to and from SLEB128 encoded integers.
iex> Varint.SLEB128.encode(-624485)
<<155, 241, 89>>
iex> Varint.SLEB128.decode(<<155, 241, 89>>)
{-624485, <<>>}
Summary
Functions
Decodes SLEB128 encoded bytes to a signed integer.
Returns a tuple where the first element is the decoded value and the second element the bytes which have not been parsed.
This function will raise ArgumentError if the given b is not a valid SLEB128 integer.
iex> Varint.SLEB128.decode(<<229, 142, 38>>)
{624485, <<>>}
iex> Varint.SLEB128.decode(<<229, 142, 38, 0>>)
{624485, <<0>>}
iex> Varint.SLEB128.decode(<<0>>)
{0, <<>>}
iex> Varint.SLEB128.decode(<<127>>)
{-1, <<>>}
iex> Varint.SLEB128.decode(<<128>>)
** (ArgumentError) not a valid SLEB128 encoded integer
Encodes a signed integer using SLEB128 compression.
iex> Varint.SLEB128.encode(0)
<<0>>
iex> Varint.SLEB128.encode(1)
<<1>>
iex> Varint.SLEB128.encode(-1)
<<127>>
iex> Varint.SLEB128.encode(624485)
<<229, 142, 38>>