View Source locus_mmdb_metadata (locus v2.3.5)
Link to this section Summary
Functions
Parses and validates Metadata out of EncodedDatabase
Link to this section Types
Specs
binary_format_version() :: {2, locus_mmdb_data:uint16()}.
Specs
parse_or_validation_error() ::
{marker_not_found, bitstring()} |
{atom(), term(), list()} |
{not_a_map, term()} |
{incompatible_binary_format_version,
{locus_mmdb_data_raw:uint16(), locus_mmdb_data_raw:uint16()}} |
{invalid_binary_format_minor_version, term()} |
{invalid_binary_format_major_version, term()} |
{missing_metadata_keys, [unicode:unicode_binary(), ...]} |
{invalid_node_count, locus_mmdb_data_raw:value()} |
{missing_node_count, locus_mmdb_data_raw:map_()} |
{invalid_record_size, locus_mmdb_data_raw:value()} |
{missing_record_size, locus_mmdb_data_raw:map_()} |
{invalid_ip_version, locus_mmdb_data_raw:value()} |
{missing_ip_version, locus_mmdb_data_raw:map_()} |
{invalid_database_type, locus_mmdb_data_raw:value()} |
{missing_database_type, locus_mmdb_data_raw:map_()} |
{languages_not_an_array, locus_mmdb_data_raw:value()} |
{bad_languages,
{language_number, pos_integer(), not_an_utf8_string, locus_mmdb_data_raw:value()}} |
{description_not_a_map, locus_mmdb_data_raw:value()} |
{bad_description,
{for_language_code,
unicode:unicode_binary(),
{not_an_utf8_string, locus_mmdb_data_raw:value()}}}.
Specs
t() ::
#{binary_format_version := binary_format_version(),
node_count := locus_mmdb_data:uint32(),
record_size := locus_mmdb_data:uint16(),
ip_version := 4 | 6,
database_type := locus_mmdb_data:utf8_string(),
languages => [locus_mmdb_data:utf8_string()],
build_epoch := locus_mmdb_data:uint64(),
description => #{locus_mmdb_data:utf8_string() => locus_mmdb_data:utf8_string()},
{'$_unrecognized_properties'} =>
#{locus_mmdb_data:utf8_string() := locus_mmdb_data_raw:value()}}.
Link to this section Functions
Specs
parse_and_validate(EncodedDatabase) -> {ok, Metadata, TreeAndDataSection} | {error, Reason}
when
EncodedDatabase :: binary(),
Metadata :: t(),
TreeAndDataSection :: binary(),
Reason :: parse_or_validation_error().
Parses and validates Metadata out of EncodedDatabase
TreeAndDataSection, see locus_mmdb:unpack_tree_data_and_data_section/2.