-module(gip). -compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch]). -export([parse/1, is_ip/1, is_v4/1, is_v6/1, stringify/1, self/0]). -export_type([ip/0]). -type ip() :: {v4, {integer(), integer(), integer(), integer()}} | {v6, {integer(), integer(), integer(), integer(), integer(), integer(), integer(), integer(), integer(), integer(), integer(), integer(), integer(), integer(), integer(), integer()}}. -spec parse(binary()) -> {ok, ip()} | {error, binary()}. parse(Ip) -> gip_ffi:parse(Ip). -spec is_ip(binary()) -> boolean(). is_ip(Ip) -> gip_ffi:is_ip(Ip). -spec is_v4(binary()) -> boolean(). is_v4(Ip) -> gip_ffi:is_v4(Ip). -spec is_v6(binary()) -> boolean(). is_v6(Ip) -> gip_ffi:is_v6(Ip). -spec stringify(ip()) -> {ok, binary()} | {error, binary()}. stringify(Ip) -> gip_ffi:stringify(Ip). -spec self() -> {ok, ip()} | {error, binary()}. self() -> gip_ffi:self().