Current section
Files
Jump to
Current section
Files
src/types@name.erl
-module(types@name).
-compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch]).
-export([from_raw_data/2, to_string/1, length/1]).
-export_type([name/0]).
-type name() :: {name, types@vector:vector()}.
-spec from_raw_data(integer(), bitstring()) -> {ok, name()} | {error, binary()}.
from_raw_data(Position, Raw_data) ->
gleam@result:'try'(
types@vector:from_raw_data(Position, Raw_data),
fun(Vec) -> {ok, {name, Vec}} end
).
-spec to_string(name()) -> {ok, binary()} | {error, binary()}.
to_string(Name) ->
case gleam@bit_array:to_string(erlang:element(3, erlang:element(2, Name))) of
{ok, Str} ->
{ok, Str};
{error, _} ->
{error, <<"name::show: invalid UTF-8 vector data"/utf8>>}
end.
-spec length(name()) -> integer().
length(Name) ->
erlang:element(2, erlang:element(2, Name)).