diff --git a/include/eVPack.hrl b/include/eVPack.hrl index b984c8c..3a3191d 100644 --- a/include/eVPack.hrl +++ b/include/eVPack.hrl @@ -10,7 +10,7 @@ -define(VpArrNc, 0). %% 不压缩编码 -define(VpArrYc, 1). %% 压缩编码 --define(VpObjDef, 0). %% 默认选项 不排序Obj key Obj不压缩 +-define(VpObjDef, 0). %% 默认选项 排序Obj key Obj不压缩 -define(VpArrDef, 0). %% 默认选项 Arr不压缩排序 -define(VpAllOpts(Arr, Obj), Obj bsl 1 bor Arr). %% 拼装Obj 与 Arr选项 diff --git a/src/deTest.erl b/src/deTest.erl index d85f195..a453cb4 100644 --- a/src/deTest.erl +++ b/src/deTest.erl @@ -143,7 +143,7 @@ do() -> Ex8 = eVPack:decode(<<20, 16, 65, 97, 40, 12, 65, 98, 26, 65, 99, 67, 120, 121, 122, 3>>), Ex9 = [#{<<"a">> => 12, <<"b">> => true, <<"c">> => <<"xyz">>}, #{<<"a">> => 12, <<"b">> => true, <<"c">> => <<"xyz">>}], Ex9 = eVPack:decode(<<19, 35, 20, 16, 65, 97, 40, 12, 65, 98, 26, 65, 99, 67, 120, 121, 122, 3, 20, 16, 65, 97, 40, 12, 65, 98, 26, 65, 99, 67, 120, 121, 122, 3, 2>>), - Ex10 = [#{<<"key">> => 42}, <<"fooooobar">>, <<"x">>, <<1, 2, 3, 4, 5, 6, 7, 8>>], + Ex10 = [#{<<"key">> => 42}, <<"fooooobar">>, <<"x">>, {?blob, <<1, 2, 3, 4, 5, 6, 7, 8>>}], Ex10Bin = <<2, 42, 11, 10, 1, 67, 107, 101, 121, 40, 42, 3, 73, 102, 111, 111, 111, 111, 111, 98, 97, 114, 191, 1, 0, 0, 0, 0, 0, 0, 0, 120, 192, 8, 1, 2, 3, 4, 5, 6, 7, 8>>, Ex10 = eVPack:decode(Ex10Bin), diff --git a/src/eVPack.erl b/src/eVPack.erl index ebec423..1b0f128 100644 --- a/src/eVPack.erl +++ b/src/eVPack.erl @@ -11,6 +11,8 @@ decodeAll/1 , decodeHeader/1 , decoder/1 + %% for test + , decode/1 %% encode , encodeIol/1 @@ -478,6 +480,9 @@ decoder(DataBin) -> erlang:throw({error, unexpected_end}) end. +decode(DataBin) -> + element(1, decoder(DataBin)). + decoder(0, RestBin) -> erlang:throw({error, {unsupported_type, RestBin}}); decoder(1, RestBin) -> diff --git a/src/enTest.erl b/src/enTest.erl index 1ca030c..fc8045b 100644 --- a/src/enTest.erl +++ b/src/enTest.erl @@ -117,8 +117,8 @@ do() -> ArrsBin = [[1, 2, 3], [1, 2, 3]], ArrLists = eVPack:encodeBin(ArrsBin), <<10>> = eVPack:encodeBin(#{}), - <<15, 8, 1, 65, 97, 65, 98, 3>> = eVPack:encodeBin(#{<<"a">> => <<"b">>}), - <<15, 13, 2, 65, 97, 65, 98, 65, 98, 65, 97, 3, 7>> = eVPack:encodeBin(#{a => <<"b">>, b => <<"a">>}), + <<11, 8, 1, 65, 97, 65, 98, 3>> = eVPack:encodeBin(#{<<"a">> => <<"b">>}), + <<11, 13, 2, 65, 97, 65, 98, 65, 98, 65, 97, 3, 7>> = eVPack:encodeBin(#{a => <<"b">>, b => <<"a">>}), Maps = #{<<"0">> => #{<<"0">> => <<"test">>, <<"1">> => <<"test">>, <<"2">> => <<"test">>, <<"3">> => <<"test">>,