Something
public text v1 · immutableparse_array(Type, Binary) ->
{ok, N, Rest} = parse(u30, Binary),
case N of
0 ->
%% XXX: Lame.
{ok, [], Rest};
N when N > 0 ->
parse_array_loop(Type, Rest, N - 1, [])
end.
parse_array_loop(Type, Binary, 0, Acc) ->
{ok, lists:reverse(Acc), Binary};
parse_array_loop(Type, Binary, N, Acc) when N > 0 ->
{ok, Val, Rest} = parse(Type, Binary),
parse_array_loop(Type, Rest, N - 1, [Val | Acc]).