Venom.Parser (venom v0.1.0)
This module largely contains functions designed for internal use. You're probably better off using
the functions defined in Venom
, unless you need to perform some specific NBT parsing yourself.
Summary
Functions
Parse a byte (8 bits) from a binary, returning any remaining data.
Parse an i32-length-prefixed array of bytes from a binary, returning any remaining data.
Parse a double (64 bits) from a binary, returning any remaining data.
Parse a float (32 bits) from a binary, returning any remaining data.
Parse an int (32 bits) from a binary, returning any remaining data.
Parse an i32-length-prefixed array of 32-bit signed ints from a binary, returning any remaining data.
Parse a long (64 bits) from a binary, returning any remaining data.
Parse an i32-length-prefixed array of 64-bit signed longs from a binary, returning any remaining data.
Entry-point for parsing a full NBT tag. Ensures a single-keyed compound.
Parse a short (16 bits) from a binary, returning any remaining data.
Parse a string from a binary, returning any remaining data.
Parse a tag type from a binary, returning any remaining data.
Functions
parse_byte!(data)
Parse a byte (8 bits) from a binary, returning any remaining data.
Examples
iex> Venom.Parser.parse_byte!(<<5, 0xAA, 0xBB>>)
{5, <<0xAA, 0xBB>>}
parse_byte_array!(data)
Parse an i32-length-prefixed array of bytes from a binary, returning any remaining data.
Examples
iex> Venom.Parser.parse_byte_array!(<<0, 0, 0, 4, 1, 2, 3, 4, 0xAA, 0xBB>>)
{[1, 2, 3, 4], <<0xAA, 0xBB>>}
parse_double!(data)
Parse a double (64 bits) from a binary, returning any remaining data.
Examples
iex> Venom.Parser.parse_double!(<<25, 25, 25, 25, 25, 25, 25, 25, 0xAA, 0xBB>>)
{9.01285756841504e-188, <<0xAA, 0xBB>>}
parse_float!(data)
Parse a float (32 bits) from a binary, returning any remaining data.
Examples
iex> Venom.Parser.parse_float!(<<25, 25, 25, 25, 0xAA, 0xBB>>)
{7.914983038854372e-24, <<0xAA, 0xBB>>}
parse_int!(data)
Parse an int (32 bits) from a binary, returning any remaining data.
Examples
iex> Venom.Parser.parse_int!(<<0, 0, 0, 5, 0xAA, 0xBB>>)
{5, <<0xAA, 0xBB>>}
parse_int_array!(data)
Parse an i32-length-prefixed array of 32-bit signed ints from a binary, returning any remaining data.
Examples
iex> Venom.Parser.parse_int_array!(<<0, 0, 0, 2, 0, 0, 0, 1, 0, 0, 0, 2, 0xAA, 0xBB>>)
{[1, 2], <<0xAA, 0xBB>>}
parse_list!(data)
parse_long!(data)
Parse a long (64 bits) from a binary, returning any remaining data.
Examples
iex> Venom.Parser.parse_long!(<<0, 0, 0, 0, 0, 0, 0, 5, 0xAA, 0xBB>>)
{5, <<0xAA, 0xBB>>}
parse_long_array!(data)
Parse an i32-length-prefixed array of 64-bit signed longs from a binary, returning any remaining data.
Examples
iex> Venom.Parser.parse_long_array!(<<0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0xAA, 0xBB>>)
{[1, 2], <<0xAA, 0xBB>>}
parse_root!(data)
Entry-point for parsing a full NBT tag. Ensures a single-keyed compound.
parse_short!(data)
Parse a short (16 bits) from a binary, returning any remaining data.
Examples
iex> Venom.Parser.parse_short!(<<0, 5, 0xAA, 0xBB>>)
{5, <<0xAA, 0xBB>>}
parse_string!(data)
Parse a string from a binary, returning any remaining data.
Examples
iex> Venom.Parser.parse_string!(<<0, 5, "abcde", 0xAA, 0xBB>>)
{"abcde", <<0xAA, 0xBB>>}
parse_tag_type!(data)
Parse a tag type from a binary, returning any remaining data.
Examples
iex> Venom.Parser.parse_tag_type!(<<5, 0xAA, 0xBB>>)
{5, <<0xAA, 0xBB>>}