-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)).