mirror of
https://github.com/msgpack/msgpack-python.git
synced 2026-02-06 17:59:52 +00:00
erlang: unpack_all/1 improve, error handling added.
This commit is contained in:
parent
dad7a03d19
commit
6cabad19d5
1 changed files with 11 additions and 5 deletions
|
|
@ -80,16 +80,22 @@ unpack(Bin) when is_binary(Bin) ->
|
|||
unpack(Other) ->
|
||||
{error, {badarg, Other}}.
|
||||
|
||||
-spec unpack_all(binary()) -> [msgpack_term()].
|
||||
-spec unpack_all(binary()) -> [msgpack_term()] | {error, incomplete} | {error, {badarg, term()}}.
|
||||
unpack_all(Data)->
|
||||
case unpack(Data) of
|
||||
{ Term, Binary } when bit_size(Binary) =:= 0 ->
|
||||
try
|
||||
unpack_all_(Data)
|
||||
catch
|
||||
throw:Exception ->
|
||||
{error, Exception}
|
||||
end.
|
||||
unpack_all_(Data)->
|
||||
case unpack_(Data) of
|
||||
{ Term, <<>> } ->
|
||||
[Term];
|
||||
{ Term, Binary } when is_binary(Binary) ->
|
||||
[Term|unpack_all(Binary)]
|
||||
[Term|unpack_all_(Binary)]
|
||||
end.
|
||||
|
||||
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
% internal APIs
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue