View Source Varint.Zigzag (Varint v1.5.1)

This module provides functions to work with signed integers in conjunction with LEB128 encoding.

Summary

Functions

Decodes an unsigned integer into a signed integer.

Encodes a signed integer into an unsigned integer suitable for LEB128 encoding.

Functions

decode(v)

@spec decode(non_neg_integer()) :: integer()

Decodes an unsigned integer into a signed integer.

iex> Varint.Zigzag.decode(0)
0

iex> Varint.Zigzag.decode(1)
-1

iex> Varint.Zigzag.decode(2)
1

iex> Varint.Zigzag.decode(3)
-2

iex> Varint.Zigzag.decode(4294967294)
2147483647

iex> Varint.Zigzag.decode(4294967295)
-2147483648

encode(v)

@spec encode(integer()) :: non_neg_integer()

Encodes a signed integer into an unsigned integer suitable for LEB128 encoding.

iex> Varint.Zigzag.encode(0)
0

iex> Varint.Zigzag.encode(-1)
1

iex> Varint.Zigzag.encode(1)
2

iex> Varint.Zigzag.encode(-2)
3

iex> Varint.Zigzag.encode(-2147483648)
4294967295

iex> Varint.Zigzag.encode(2147483647)
4294967294