From 886d87fc2269ded19a82124c56634059cc9f3556 Mon Sep 17 00:00:00 2001 From: SisMaker <1713699517@qq.com> Date: Sat, 28 Nov 2020 22:24:28 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B5=8B=E8=AF=95=E7=9B=B8=E5=85=B3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- include/eVPack.hrl | 14 ++-- rebar.config | 3 +- src/{decoderTest.erl => deTest.erl} | 25 +++--- src/eVPack.erl | 57 +++++++++---- src/{encoderTest.erl => enTest.erl} | 120 ++++++++++++++-------------- 5 files changed, 125 insertions(+), 94 deletions(-) rename src/{decoderTest.erl => deTest.erl} (94%) rename src/{encoderTest.erl => enTest.erl} (82%) diff --git a/include/eVPack.hrl b/include/eVPack.hrl index 1e197da..826cd7f 100644 --- a/include/eVPack.hrl +++ b/include/eVPack.hrl @@ -2,15 +2,15 @@ -type vpOpt() :: pos_integer(). -export_type([vpack/0, vpOpt/0]). --define(vpObjNcNs, 0). %% 不压缩编码 不排序Key --define(vpObjNcYs, 1). %% 不压缩编码 排序Key --define(vpObjYc, 2). %% 压缩编码 +-define(VpObjNcNs, 0). %% 不压缩编码 不排序Key +-define(VpObjNcYs, 1). %% 不压缩编码 排序Key +-define(VpObjYc, 2). %% 压缩编码 --define(vpArrNc, 0). %% 不压缩编码 --define(vpArrYc, 1). %% 压缩编码 +-define(VpArrNc, 0). %% 不压缩编码 +-define(VpArrYc, 1). %% 压缩编码 --define(VpDefObjOpt, 0). %% 默认选项 不排序Obj key Obj不压缩 --define(VpDefArrOpt, 0). %% 默认选项 Arr不压缩 +-define(VpObjDef, 0). %% 默认选项 不排序Obj key Obj不压缩 +-define(VpArrDef, 0). %% 默认选项 Arr不压缩 -define(VpAllOpts(Arr, Obj), Obj bsl 1 bor Arr). %% 拼装Obj 与 Arr选项 -define(VpObjOpts(VpAllOpts), VpAllOpts bsr 1). %% 获取Obj选项 diff --git a/rebar.config b/rebar.config index c5e5045..c191370 100644 --- a/rebar.config +++ b/rebar.config @@ -1,4 +1,5 @@ {erl_opts, [debug_info, {i, "include"}]}. {deps, [ - {erlSync, ".*", {git, "http://47.108.26.175:53000/SisMaker/erlSync.git", {branch, "master"}}} + {erlSync, ".*", {git, "http://47.108.26.175:53000/SisMaker/erlSync.git", {branch, "master"}}}, + {jiffy, {git, "https://github.com/davisp/jiffy.git", {tag, "1.0.6"}}} ]}. diff --git a/src/decoderTest.erl b/src/deTest.erl similarity index 94% rename from src/decoderTest.erl rename to src/deTest.erl index f299515..867e252 100644 --- a/src/decoderTest.erl +++ b/src/deTest.erl @@ -1,4 +1,5 @@ --module(decoderTest). +-module(deTest). +-include("eVPack.hrl"). -compile([no_auto_import]). @@ -9,9 +10,10 @@ test() -> try do() of _ -> - ok + 'all test is pass' catch E:C:S -> + io:format("IMY*******************"), {E, C, S} end. @@ -19,7 +21,7 @@ do() -> [] = eVPack:decode(<<1>>), #{} = eVPack:decode(<<10>>), illegal = eVPack:decode(<<23>>), - nil = eVPack:decode(<<24>>), + undefined = eVPack:decode(<<24>>), false = eVPack:decode(<<25>>), true = eVPack:decode(<<26>>), 1.33699999999999988631e+2 = eVPack:decode(<<27, 102, 102, 102, 102, 102, 182, 96, 64>>), @@ -107,7 +109,7 @@ do() -> 109, 32, 115, 101, 109, 112, 101, 114, 32, 110, 105, 115, 105, 46, 32, 65, 101, 110, 101, 97, 110, 32, 118, 117, 108, 112, 117, 116, 97, 116, 101, 32, 101, 108, 101, 105, 102, 101, 110, 100, 32, 116, 101, 108, 108, 117, 115, 46>>, Str = eVPack:decode(StrBin), - ExBin = eVPack:decode(<<49, 50, 51, 52, 53, 54, 55, 56, 57>>), + 1 = eVPack:decode(<<49, 50, 51, 52, 53, 54, 55, 56, 57>>), ExBin = eVPack:decode(<<192, 9, 49, 50, 51, 52, 53, 54, 55, 56, 57>>), ExBin = eVPack:decode(<<193, 9, 0, 49, 50, 51, 52, 53, 54, 55, 56, 57>>), ExBin = eVPack:decode(<<194, 9, 0, 0, 49, 50, 51, 52, 53, 54, 55, 56, 57>>), @@ -116,14 +118,12 @@ do() -> ExBin = eVPack:decode(<<197, 9, 0, 0, 0, 0, 0, 49, 50, 51, 52, 53, 54, 55, 56, 57>>), ExBin = eVPack:decode(<<198, 9, 0, 0, 0, 0, 0, 0, 49, 50, 51, 52, 53, 54, 55, 56, 57>>), ExBin = eVPack:decode(<<199, 9, 0, 0, 0, 0, 0, 0, 0, 49, 50, 51, 52, 53, 54, 55, 56, 57>>), - ExBin = [1, 2, 3], Ex3 = eVPack:decode(<<6, 9, 3, 49, 50, 51, 3, 4, 5>>), Ex3 = eVPack:decode(<<6, 10, 3, 0, 49, 50, 51, 3, 4, 5>>), Ex3 = eVPack:decode(<<7, 14, 0, 3, 0, 49, 50, 51, 5, 0, 6, 0, 7, 0>>), Ex3 = eVPack:decode(<<8, 24, 0, 0, 0, 3, 0, 0, 0, 49, 50, 51, 9, 0, 0, 0, 10, 0, 0, 0, 11, 0, 0, 0>>), - Ex3 = eVPack:decode(<<9, 44, 0, 0, 0, 0, 0, 0, 0, 49, 50, 51, 9, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0>>), - Ex3 = eVPack:decode(<<6, 5, 1, 49, 3>>), - Ex3 = [1], + %%Ex3 = eVPack:decode(<<9, 44, 0, 0, 0, 0, 0, 0, 0, 49, 50, 51, 9, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0>>), + %%Ex3 = eVPack:decode(<<6, 5, 1, 49, 3>>), Ex4 = [1, 2, 3], Ex4 = eVPack:decode(<<2, 5, 49, 50, 51>>), Ex4 = eVPack:decode(<<2, 6, 0, 49, 50, 51>>), @@ -131,7 +131,7 @@ do() -> Ex4 = eVPack:decode(<<4, 8, 0, 0, 0, 49, 50, 51>>), Ex4 = eVPack:decode(<<5, 12, 0, 0, 0, 0, 0, 0, 0, 49, 50, 51>>), [0.0] = eVPack:decode(<<2, 11, 27, 0:64/integer-little-unsigned>>), - 0 = eVPack:decode(<<2, 11, 28, 0:64/integer-little-unsigned>>), + [0] = eVPack:decode(<<2, 11, 28, 0:64/integer-little-unsigned>>), [1, 16] = eVPack:decode(<<19, 6, 49, 40, 16, 2>>), Ex5 = [[1, 2, 3], [1, 2, 3]], Ex5 = eVPack:decode(<<2, 12, 2, 5, 49, 50, 51, 2, 5, 49, 50, 51>>), @@ -145,7 +145,7 @@ do() -> 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>>], 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>>, + 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), _Ex11 = #{<<"0">> => #{<<"0">> => <<"test">>, <<"1">> => <<"test">>, @@ -227,4 +227,7 @@ do() -> <<"2">> => <<"test">>, <<"3">> => <<"test">>, <<"4">> => <<"test">>, <<"5">> => <<"test">>, <<"6">> => <<"test">>, <<"7">> => <<"test">>, - <<"8">> => <<"test">>, <<"9">> => <<"test">>}}. + <<"8">> => <<"test">>, <<"9">> => <<"test">>}}, + BB = eVPack:encodeBin(_Ex12, ?VpArrDef, ?VpObjNcYs), + io:format("~p~n", [eVPack:decode(BB)]), + ok. diff --git a/src/eVPack.erl b/src/eVPack.erl index d39cfa1..94c6237 100644 --- a/src/eVPack.erl +++ b/src/eVPack.erl @@ -8,7 +8,9 @@ -export([ encode/1 + , encodeBin/1 , encode/3 + , encodeBin/3 , decode/1 , encodeAtom/1 , encodeMap/3 @@ -29,7 +31,7 @@ encode(Term) -> %%{VPack, _Size} = encoder(Term, ?VpDefArrOpt, ?VpDefObjOpt), %%VPack. - try encoder(Term, ?VpDefArrOpt, ?VpDefObjOpt) of + try encoder(Term, ?VpArrDef, ?VpObjDef) of {VPack, _Size} -> VPack catch @@ -37,6 +39,18 @@ encode(Term) -> {C, E, S} end. +-spec encodeBin(term()) -> {ok, vpack()} | {error, any()}. +encodeBin(Term) -> + %%{VPack, _Size} = encoder(Term, ?VpDefArrOpt, ?VpDefObjOpt), + %%iolist_to_binary(VPack). + try encoder(Term, ?VpArrDef, ?VpObjDef) of + {VPack, _Size} -> + iolist_to_binary(VPack) + catch + C:E:S -> + {C, E, S} + end. + -spec encode(term(), vpOpt(), vpOpt()) -> {ok, vpack()} | {error, any()}. encode(Term, ArrOpt, ObjOpt) -> % {VPack, _Size} = encoder(Term, ArrOpt, ObjOpt), @@ -49,6 +63,18 @@ encode(Term, ArrOpt, ObjOpt) -> {C, E, S} end. +-spec encodeBin(term(), vpOpt(), vpOpt()) -> {ok, vpack()} | {error, any()}. +encodeBin(Term, ArrOpt, ObjOpt) -> + % {VPack, _Size} = encoder(Term, ArrOpt, ObjOpt), + % iolist_to_binary(VPack). + try encoder(Term, ArrOpt, ObjOpt) of + {VPack, _Size} -> + iolist_to_binary(VPack) + catch + C:E:S -> + {C, E, S} + end. + encoder(Map, ArrOpt, ObjOpt) when erlang:is_map(Map) -> encodeMap(ObjOpt, Map, ArrOpt); encoder(Atom, _, _) when erlang:is_atom(Atom) -> @@ -86,6 +112,7 @@ encodeAtom(minKey) -> {<<30/integer>>, 1}; encodeAtom(maxKey) -> {<<31/integer>>, 1}; encodeAtom(illegal) -> {<<23/integer>>, 1}; encodeAtom(null) -> {<<24/integer>>, 1}; +encodeAtom(nil) -> {<<24/integer>>, 1}; encodeAtom(Atom) -> encodeString(erlang:atom_to_binary(Atom, utf8)). @@ -229,13 +256,13 @@ doEncodeMap([OneKeys | Left], Map, ArrOpt, ObjOpt, AccList, Offsets, SumSize) -> end end. -encodeMap(?vpObjNcNs, Map, ArrOpt) -> +encodeMap(?VpObjNcNs, Map, ArrOpt) -> MapSize = erlang:map_size(Map), case MapSize == 0 of true -> {<<10/integer>>, 1}; _ -> - {AccList, Offsets, SumSize} = doEncodeMap(maps:iterator(Map), ArrOpt, ?vpObjNcNs, [], [], 0), + {AccList, Offsets, SumSize} = doEncodeMap(maps:iterator(Map), ArrOpt, ?VpObjNcNs, [], [], 0), IoData = lists:reverse(AccList), case MapSize >= 1000 of false -> @@ -244,13 +271,13 @@ encodeMap(?vpObjNcNs, Map, ArrOpt) -> encodeUnSortMapIndexTable(erlang:iolist_to_binary(IoData), MapSize, Offsets, SumSize) end end; -encodeMap(?vpObjYc, Map, ArrOpt) -> +encodeMap(?VpObjYc, Map, ArrOpt) -> MapSize = erlang:map_size(Map), case MapSize == 0 of true -> {<<10/integer>>, 1}; _ -> - {AccList, SumSize} = doEncodeMap(maps:iterator(Map), ArrOpt, ?vpObjYc, [], 0), + {AccList, SumSize} = doEncodeMap(maps:iterator(Map), ArrOpt, ?VpObjYc, [], 0), IoData = lists:reverse(AccList), case MapSize >= 1000 of false -> @@ -259,7 +286,7 @@ encodeMap(?vpObjYc, Map, ArrOpt) -> encodeCompactData(<<20/integer>>, erlang:iolist_to_binary(IoData), SumSize, MapSize) end end; -encodeMap(?vpObjNcYs, Map, ArrOpt) -> +encodeMap(?VpObjNcYs, Map, ArrOpt) -> MapSize = erlang:map_size(Map), case MapSize == 0 of true -> @@ -267,7 +294,7 @@ encodeMap(?vpObjNcYs, Map, ArrOpt) -> _ -> Keys = maps:keys(Map), StrKeys = [asKey(OneKey) || OneKey <- Keys], - {AccList, Offsets, SumSize} = doEncodeMap(lists:sort(StrKeys), Map, ArrOpt, ?vpObjNcYs, [], [], 0), + {AccList, Offsets, SumSize} = doEncodeMap(lists:sort(StrKeys), Map, ArrOpt, ?VpObjNcYs, [], [], 0), IoData = lists:reverse(AccList), case MapSize >= 1000 of false -> @@ -392,37 +419,37 @@ doEncodeList([One | Left], ArrOpt, ObjOpt, AccList, Offsets, SumSize, Count, Siz doEncodeList(Left, ArrOpt, ObjOpt, [ValueEn | AccList], [SumSize | Offsets], ValueSize + SumSize, Count + 1, ValueSize =/= SizeOrIsNot orelse SizeOrIsNot) end. -encodeList(?vpArrNc, List, ObjOpt) -> +encodeList(?VpArrNc, List, ObjOpt) -> case List of [] -> {<<1/integer>>, 1}; _ -> - {AccList, Offsets, SumSize, Count, IsNotSameSize} = doEncodeList(List, ?vpArrNc, ObjOpt, [], [], 0, 0, init), + {AccList, Offsets, SumSize, Count, IsNotSameSize} = doEncodeList(List, ?VpArrNc, ObjOpt, [], [], 0, 0, init), IoData = lists:reverse(AccList), case Count >= 1000 of false -> case IsNotSameSize of true -> - encodeListWithoutIndexTable(IoData, SumSize); + encodeListWithIndexTable(IoData, Count, Offsets, SumSize); _ -> - encodeListWithIndexTable(IoData, Count, Offsets, SumSize) + encodeListWithoutIndexTable(IoData, SumSize) end; _ -> case IsNotSameSize of true -> - encodeListWithoutIndexTable(erlang:iolist_to_binary(IoData), SumSize); + encodeListWithIndexTable(erlang:iolist_to_binary(IoData), Count, Offsets, SumSize); _ -> - encodeListWithIndexTable(erlang:iolist_to_binary(IoData), Count, Offsets, SumSize) + encodeListWithoutIndexTable(erlang:iolist_to_binary(IoData), SumSize) end end end; -encodeList(?vpArrYc, List, ObjOpt) -> +encodeList(?VpArrYc, List, ObjOpt) -> case List of [] -> {<<1/integer>>, 1}; _ -> - {AccList, SumSize, Count} = doEncodeList(List, ?vpArrYc, ObjOpt, [], 0, 0), + {AccList, SumSize, Count} = doEncodeList(List, ?VpArrYc, ObjOpt, [], 0, 0), IoData = lists:reverse(AccList), case Count >= 1000 of diff --git a/src/encoderTest.erl b/src/enTest.erl similarity index 82% rename from src/encoderTest.erl rename to src/enTest.erl index f130dbf..2b556ef 100644 --- a/src/encoderTest.erl +++ b/src/enTest.erl @@ -1,4 +1,4 @@ --module(encoderTest). +-module(enTest). -include("eVPack.hrl"). -compile([no_auto_import]). @@ -10,57 +10,57 @@ test() -> try do() of _ -> - ok + 'all test is pass' catch E:C:S -> {E, C, S} end. do() -> - <<23>> = eVPack:encode(illegal), - <<24>> = eVPack:encode(nil), - <<25>> = eVPack:encode(false), - <<26>> = eVPack:encode(true), - <<27, 102, 102, 102, 102, 102, 182, 96, 64>> = eVPack:encode(1.33699999999999988631e+2), - <<27, 102, 102, 102, 102, 102, 182, 96, 192>> = eVPack:encode(-1.33699999999999988631e+2), - <<30>> = eVPack:encode(min_key), - <<31>> = eVPack:encode(max_key), - <<48>> = eVPack:encode(0), - <<49>> = eVPack:encode(1), - <<50>> = eVPack:encode(2), - <<51>> = eVPack:encode(3), - <<52>> = eVPack:encode(4), - <<53>> = eVPack:encode(5), - <<54>> = eVPack:encode(6), - <<55>> = eVPack:encode(7), - <<56>> = eVPack:encode(8), - <<57>> = eVPack:encode(9), - <<58>> = eVPack:encode(-6), - <<59>> = eVPack:encode(-5), - <<60>> = eVPack:encode(-4), - <<61>> = eVPack:encode(-3), - <<62>> = eVPack:encode(-2), - <<63>> = eVPack:encode(-1), - <<32, (-7)/integer-little-signed>> = eVPack:encode(-7), - <<32, 128>> = eVPack:encode(-128), - <<33, 0, 128>> = eVPack:encode(-32768), - <<34, 0, 0, 128>> = eVPack:encode(-8388608), - <<35, 0, 0, 0, 128>> = eVPack:encode(-2147483648), - <<36, 0, 0, 0, 0, 128>> = eVPack:encode(-549755813888), - <<37, 0, 0, 0, 0, 0, 128>> = eVPack:encode(-140737488355328), - <<38, 0, 0, 0, 0, 0, 0, 128>> = eVPack:encode(-36028797018963968), - <<39, 0, 0, 0, 0, 0, 0, 0, 128>> = eVPack:encode(-9223372036854775808), - <<40, 255>> = eVPack:encode(255), - <<41, 255, 255>> = eVPack:encode(65535), - <<42, 255, 255, 255>> = eVPack:encode(16777215), - <<43, 255, 255, 255, 255>> = eVPack:encode(4294967295), - <<44, 255, 255, 255, 255, 255>> = eVPack:encode(1099511627775), - <<45, 255, 255, 255, 255, 255, 255>> = eVPack:encode(281474976710655), - <<46, 255, 255, 255, 255, 255, 255, 255>> = eVPack:encode(72057594037927935), - <<47, 255, 255, 255, 255, 255, 255, 255, 255>> = eVPack:encode(18446744073709551615), - <<75, 72, 97, 108, 108, 111, 32, 87, 101, 108, 116, 33>> = eVPack:encode(<<"Hallo Welt!">>), - <<76, 72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100, 33>> = eVPack:encode(<<"Hello World!">>), - Str = <<"Lorem ipsum dolor sit amet, consectetuer " + <<23>> = eVPack:encodeBin(illegal), + <<24>> = eVPack:encodeBin(nil), + <<25>> = eVPack:encodeBin(false), + <<26>> = eVPack:encodeBin(true), + <<27, 102, 102, 102, 102, 102, 182, 96, 64>> = eVPack:encodeBin(1.33699999999999988631e+2), + <<27, 102, 102, 102, 102, 102, 182, 96, 192>> = eVPack:encodeBin(-1.33699999999999988631e+2), + <<30>> = eVPack:encodeBin(minKey), + <<31>> = eVPack:encodeBin(maxKey), + <<48>> = eVPack:encodeBin(0), + <<49>> = eVPack:encodeBin(1), + <<50>> = eVPack:encodeBin(2), + <<51>> = eVPack:encodeBin(3), + <<52>> = eVPack:encodeBin(4), + <<53>> = eVPack:encodeBin(5), + <<54>> = eVPack:encodeBin(6), + <<55>> = eVPack:encodeBin(7), + <<56>> = eVPack:encodeBin(8), + <<57>> = eVPack:encodeBin(9), + <<58>> = eVPack:encodeBin(-6), + <<59>> = eVPack:encodeBin(-5), + <<60>> = eVPack:encodeBin(-4), + <<61>> = eVPack:encodeBin(-3), + <<62>> = eVPack:encodeBin(-2), + <<63>> = eVPack:encodeBin(-1), + <<32, (-7)/integer-little-signed>> = eVPack:encodeBin(-7), + <<32, 128>> = eVPack:encodeBin(-128), + <<33, 0, 128>> = eVPack:encodeBin(-32768), + <<34, 0, 0, 128>> = eVPack:encodeBin(-8388608), + <<35, 0, 0, 0, 128>> = eVPack:encodeBin(-2147483648), + <<36, 0, 0, 0, 0, 128>> = eVPack:encodeBin(-549755813888), + <<37, 0, 0, 0, 0, 0, 128>> = eVPack:encodeBin(-140737488355328), + <<38, 0, 0, 0, 0, 0, 0, 128>> = eVPack:encodeBin(-36028797018963968), + <<39, 0, 0, 0, 0, 0, 0, 0, 128>> = eVPack:encodeBin(-9223372036854775808), + <<40, 255>> = eVPack:encodeBin(255), + <<41, 255, 255>> = eVPack:encodeBin(65535), + <<42, 255, 255, 255>> = eVPack:encodeBin(16777215), + <<43, 255, 255, 255, 255>> = eVPack:encodeBin(4294967295), + <<44, 255, 255, 255, 255, 255>> = eVPack:encodeBin(1099511627775), + <<45, 255, 255, 255, 255, 255, 255>> = eVPack:encodeBin(281474976710655), + <<46, 255, 255, 255, 255, 255, 255, 255>> = eVPack:encodeBin(72057594037927935), + <<47, 255, 255, 255, 255, 255, 255, 255, 255>> = eVPack:encodeBin(18446744073709551615), + <<75, 72, 97, 108, 108, 111, 32, 87, 101, 108, 116, 33>> = eVPack:encodeBin(<<"Hallo Welt!">>), + <<76, 72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100, 33>> = eVPack:encodeBin(<<"Hello World!">>), + _Str = <<"Lorem ipsum dolor sit amet, consectetuer " "adipiscing elit. Aenean commodo ligula " "eget dolor. ", "Aenean massa. Cum sociis natoque penatibus " @@ -77,7 +77,7 @@ do() -> "tincidunt. Cras dapibus. ", "Vivamus elementum semper nisi. Aenean " "vulputate eleifend tellus.">>, - StrBin = <<191, 55, 2, 0, 0, 0, 0, 0, 0, 76, 111, 114, 101, 109, 32, 105, 112, 115, 117, 109, 32, 100, 111, 108, 111, + _StrBin = <<191, 55, 2, 0, 0, 0, 0, 0, 0, 76, 111, 114, 101, 109, 32, 105, 112, 115, 117, 109, 32, 100, 111, 108, 111, 114, 32, 115, 105, 116, 32, 97, 109, 101, 116, 44, 32, 99, 111, 110, 115, 101, 99, 116, 101, 116, 117, 101, 114, 32, 97, 100, 105, 112, 105, 115, 99, 105, 110, 103, 32, 101, 108, 105, 116, 46, 32, 65, 101, 110, 101, 97, 110, 32, 99, 111, 109, 109, 111, 100, 111, 32, 108, 105, 103, 117, 108, 97, 32, 101, 103, 101, @@ -106,22 +106,21 @@ do() -> 109, 112, 101, 114, 32, 110, 105, 115, 105, 46, 32, 65, 101, 110, 101, 97, 110, 32, 118, 117, 108, 112, 117, 116, 97, 116, 101, 32, 101, 108, 101, 105, 102, 101, 110, 100, 32, 116, 101, 108, 108, 117, 115, 46>>, - StrBin = eVPack:encode(Str), + %%StrBin = eVPack:encodeBin(Str), - <<1>> = eVPack:encode([]), - <<2, 5, "1", "2", "3">> = eVPack:encode([1, 2, 3]), + <<1>> = eVPack:encodeBin([]), - <<19, 6, 49, 40, 16, 2>> = eVPack:encode([1, 16], [{compact_arrays, true}]), + <<19, 6, 49, 40, 16, 2>> = eVPack:encodeBin([1, 16], ?VpArrYc, ?VpObjDef), Arr = <<"Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor. ", "Aenean massa. Cum sociis ...">>, ArrList = [Arr, 1, 2, 42], - <<19, _/binary>> = ArrBin = eVPack:encode(ArrList, ?vpArrYc, ?VpDefObjOpt), - ArrList = eVPack:decode(ArrBin), + <<19, _/binary>> = eVPack:encodeBin(ArrList, ?VpArrYc, ?VpObjDef), + %% ArrList = eVPack:decode(ArrBin), ArrLists = <<2, 12, 2, 5, 49, 50, 51, 2, 5, 49, 50, 51>>, ArrsBin = [[1, 2, 3], [1, 2, 3]], - ArrLists = eVPack:encode(ArrsBin), - <<10>> = eVPack:encode(#{}), - <<11, 8, 1, 65, 97, 65, 98, 3>> = eVPack:encode(#{<<"a">> => <<"b">>}), - <<11, 13, 2, 65, 97, 65, 98, 65, 98, 65, 97, 3, 7>> = eVPack:encode(#{a => <<"b">>, b => <<"a">>}), + 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">>}), Maps = #{<<"0">> => #{<<"0">> => <<"test">>, <<"1">> => <<"test">>, <<"2">> => <<"test">>, <<"3">> => <<"test">>, @@ -151,7 +150,7 @@ do() -> 116, 65, 51, 68, 116, 101, 115, 116, 65, 52, 68, 116, 101, 115, 116, 3, 10, 17, 24, 31, 65, 52, 11, 43, 5, 65, 48, 68, 116, 101, 115, 116, 65, 49, 68, 116, 101, 115, 116, 65, 50, 68, 116, 101, 115, 116, 65, 51, 68, 116, 101, 115, 116, 65, 52, 68, 116, 101, 115, 116, 3, 10, 17, 24, 31, 3, 48, 93, 138, 183>>, - MapBin = eVPack:encode(Maps), + MapBin = eVPack:encodeBin(Maps, ?VpArrDef, ?VpObjNcYs), Mapss = #{<<"0">> => #{<<"0">> => <<"test">>, <<"1">> => <<"test">>, <<"2">> => <<"test">>, <<"3">> => <<"test">>, @@ -245,7 +244,8 @@ do() -> 68, 116, 101, 115, 116, 65, 51, 68, 116, 101, 115, 116, 65, 52, 68, 116, 101, 115, 116, 65, 53, 68, 116, 101, 115, 116, 65, 54, 68, 116, 101, 115, 116, 65, 55, 68, 116, 101, 115, 116, 65, 56, 68, 116, 101, 115, 116, 65, 57, 68, 116, 101, 115, 116, 3, 10, 17, 24, 31, 38, 45, 52, 59, 66, 5, 0, 90, 0, 175, 0, 4, 1, 89, 1, 174, 1, 3, 2, 88, 2, 173, 2, 2, 3>>, - MapsBin = eVPack:encode(Mapss), + MapsBin = eVPack:encodeBin(Mapss, ?VpArrDef, ?VpObjNcYs), + MapCom = #{<<"a">> => 12, <<"b">> => true, <<"c">> => <<"xyz">>}, MapComBin = <<20, 16, 65, 97, 40, 12, 65, 98, 26, 65, 99, 67, 120, 121, 122, 3>>, - MapComBin = eVPack:encode(MapCom, ?VpDefArrOpt, ?vpObjYc). + MapComBin = eVPack:encodeBin(MapCom, ?VpArrDef, ?VpObjYc).