diff --git a/src/deTest.erl b/src/deTest.erl index 867e252..d85f195 100644 --- a/src/deTest.erl +++ b/src/deTest.erl @@ -27,8 +27,8 @@ do() -> 1.33699999999999988631e+2 = eVPack:decode(<<27, 102, 102, 102, 102, 102, 182, 96, 64>>), -1.33699999999999988631e+2 = eVPack:decode(<<27, 102, 102, 102, 102, 102, 182, 96, 192>>), 609976800000 = eVPack:decode(<<28, 0, 83, 115, 5, (-114), 0, 0, 0>>), - min_key = eVPack:decode(<<30>>), - max_key = eVPack:decode(<<31>>), + minKey = eVPack:decode(<<30>>), + maxKey = eVPack:decode(<<31>>), 0 = eVPack:decode(<<48>>), 1 = eVPack:decode(<<49>>), diff --git a/src/eVPack.erl b/src/eVPack.erl index 94c6237..32381e5 100644 --- a/src/eVPack.erl +++ b/src/eVPack.erl @@ -110,9 +110,6 @@ encodeAtom(false) -> {<<25/integer>>, 1}; encodeAtom(true) -> {<<26/integer>>, 1}; 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)). @@ -264,12 +261,7 @@ encodeMap(?VpObjNcNs, Map, ArrOpt) -> _ -> {AccList, Offsets, SumSize} = doEncodeMap(maps:iterator(Map), ArrOpt, ?VpObjNcNs, [], [], 0), IoData = lists:reverse(AccList), - case MapSize >= 1000 of - false -> - encodeUnSortMapIndexTable(IoData, MapSize, Offsets, SumSize); - _ -> - encodeUnSortMapIndexTable(erlang:iolist_to_binary(IoData), MapSize, Offsets, SumSize) - end + encodeUnSortMapIndexTable(IoData, MapSize, Offsets, SumSize) end; encodeMap(?VpObjYc, Map, ArrOpt) -> MapSize = erlang:map_size(Map), @@ -279,12 +271,7 @@ encodeMap(?VpObjYc, Map, ArrOpt) -> _ -> {AccList, SumSize} = doEncodeMap(maps:iterator(Map), ArrOpt, ?VpObjYc, [], 0), IoData = lists:reverse(AccList), - case MapSize >= 1000 of - false -> - encodeCompactData(<<20/integer>>, IoData, SumSize, MapSize); - _ -> - encodeCompactData(<<20/integer>>, erlang:iolist_to_binary(IoData), SumSize, MapSize) - end + encodeCompactData(<<20/integer>>, IoData, SumSize, MapSize) end; encodeMap(?VpObjNcYs, Map, ArrOpt) -> MapSize = erlang:map_size(Map), @@ -296,12 +283,7 @@ encodeMap(?VpObjNcYs, Map, ArrOpt) -> StrKeys = [asKey(OneKey) || OneKey <- Keys], {AccList, Offsets, SumSize} = doEncodeMap(lists:sort(StrKeys), Map, ArrOpt, ?VpObjNcYs, [], [], 0), IoData = lists:reverse(AccList), - case MapSize >= 1000 of - false -> - encodeSortMapIndexTable(IoData, MapSize, Offsets, SumSize); - _ -> - encodeSortMapIndexTable(erlang:iolist_to_binary(IoData), MapSize, Offsets, SumSize) - end + encodeSortMapIndexTable(IoData, MapSize, Offsets, SumSize) end. encodeSortMapIndexTable(IoData, Count, Offsets, SumSize) -> @@ -322,7 +304,7 @@ encodeSortMapIndexTable(IoData, Count, Offsets, SumSize) -> TemSize + Count * 7 < 18446744073709551599 -> AllSize = TemSize + Count * 7 + 17, Header = <<14/integer, AllSize:64/integer-little-unsigned>>, - {[Header, IoData, buildIndexTable_8(Offsets, 17), <>], AllSize}; + {[Header, IoData, buildIndexTable_8(Offsets, 9), <>], AllSize}; true -> erlang:throw(<<"too much size">>) end. @@ -345,7 +327,7 @@ encodeUnSortMapIndexTable(IoData, Count, Offsets, SumSize) -> TemSize + Count * 7 < 18446744073709551599 -> AllSize = TemSize + Count * 7 + 17, Header = <<18/integer, AllSize:64/integer-little-unsigned>>, - {[Header, IoData, buildIndexTable_8(Offsets, 17), <>], AllSize}; + {[Header, IoData, buildIndexTable_8(Offsets, 9), <>], AllSize}; true -> erlang:throw(<<"encode map too much size">>) end. @@ -427,21 +409,11 @@ encodeList(?VpArrNc, List, ObjOpt) -> {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 -> - encodeListWithIndexTable(IoData, Count, Offsets, SumSize); - _ -> - encodeListWithoutIndexTable(IoData, SumSize) - end; + case IsNotSameSize of + true -> + encodeListWithIndexTable(IoData, Count, Offsets, SumSize); _ -> - case IsNotSameSize of - true -> - encodeListWithIndexTable(erlang:iolist_to_binary(IoData), Count, Offsets, SumSize); - _ -> - encodeListWithoutIndexTable(erlang:iolist_to_binary(IoData), SumSize) - end + encodeListWithoutIndexTable(IoData, SumSize) end end; encodeList(?VpArrYc, List, ObjOpt) -> @@ -450,14 +422,8 @@ encodeList(?VpArrYc, List, ObjOpt) -> {<<1/integer>>, 1}; _ -> {AccList, SumSize, Count} = doEncodeList(List, ?VpArrYc, ObjOpt, [], 0, 0), - IoData = lists:reverse(AccList), - case Count >= 1000 of - false -> - encodeCompactData(<<19/integer>>, IoData, SumSize, Count); - _ -> - encodeCompactData(<<19/integer>>, erlang:iolist_to_binary(IoData), SumSize, Count) - end + encodeCompactData(<<19/integer>>, IoData, SumSize, Count) end. encodeListWithoutIndexTable(IoData, SumSize) -> @@ -500,7 +466,7 @@ encodeListWithIndexTable(IoData, Count, Offsets, SumSize) -> TemSize + Count * 7 < 18446744073709551599 -> AllSize = TemSize + Count * 7 + 17, Header = <<9/integer, AllSize:64/integer-little-unsigned>>, - {[Header, IoData, buildIndexTable_8(Offsets, 17), <>], AllSize}; + {[Header, IoData, buildIndexTable_8(Offsets, 9), <>], AllSize}; true -> erlang:throw(<<"encode map too much size">>) end. @@ -587,9 +553,9 @@ decoder(28, RestBin) -> decoder(29, _RestBin) -> erlang:throw({unsupported_type, 29}); decoder(30, RestBin) -> - {min_key, RestBin}; + {minKey, RestBin}; decoder(31, RestBin) -> - {max_key, RestBin}; + {maxKey, RestBin}; decoder(32, RestBin) -> parseInt(1, RestBin); decoder(33, RestBin) -> @@ -1589,7 +1555,4 @@ parseObjectMembers(Length, Obj, DataBin) -> skipZeros(<<0/integer, LeftBin/binary>>) -> skipZeros(LeftBin); -skipZeros(DataBin) -> DataBin. - - - +skipZeros(DataBin) -> DataBin. \ No newline at end of file