|
|
@ -349,22 +349,22 @@ encodeSortMapIndexTable(IoData, Count, Offsets, SumSize) -> |
|
|
|
%% end. |
|
|
|
|
|
|
|
buildIndexTable_1(Offsets, StartSize) -> |
|
|
|
<<<<(OneOff + StartSize):1/integer-little-unsigned-unit:8>> || OneOff <- lists:reverse(Offsets)>>. |
|
|
|
<<<<(OneOff + StartSize):8/integer-little-unsigned>> || OneOff <- lists:reverse(Offsets)>>. |
|
|
|
buildIndexTable_2(Offsets, StartSize) -> |
|
|
|
<<<<(OneOff + StartSize):2/integer-little-unsigned-unit:8>> || OneOff <- lists:reverse(Offsets)>>. |
|
|
|
<<<<(OneOff + StartSize):16/integer-little-unsigned>> || OneOff <- lists:reverse(Offsets)>>. |
|
|
|
buildIndexTable_4(Offsets, StartSize) -> |
|
|
|
<<<<(OneOff + StartSize):4/integer-little-unsigned-unit:8>> || OneOff <- lists:reverse(Offsets)>>. |
|
|
|
<<<<(OneOff + StartSize):32/integer-little-unsigned>> || OneOff <- lists:reverse(Offsets)>>. |
|
|
|
buildIndexTable_8(Offsets, StartSize) -> |
|
|
|
<<<<(OneOff + StartSize):8/integer-little-unsigned-unit:8>> || OneOff <- lists:reverse(Offsets)>>. |
|
|
|
<<<<(OneOff + StartSize):64/integer-little-unsigned>> || OneOff <- lists:reverse(Offsets)>>. |
|
|
|
|
|
|
|
buildSMIndexTable_1(Offsets, StartSize) -> |
|
|
|
<<<<(OneOff + StartSize):1/integer-little-unsigned-unit:8>> || OneOff <- lists:sort(Offsets)>>. |
|
|
|
<<<<(OneOff + StartSize):8/integer-little-unsigned>> || OneOff <- lists:sort(Offsets)>>. |
|
|
|
buildSMIndexTable_2(Offsets, StartSize) -> |
|
|
|
<<<<(OneOff + StartSize):2/integer-little-unsigned-unit:8>> || OneOff <- lists:sort(Offsets)>>. |
|
|
|
<<<<(OneOff + StartSize):16/integer-little-unsigned>> || OneOff <- lists:sort(Offsets)>>. |
|
|
|
buildSMIndexTable_4(Offsets, StartSize) -> |
|
|
|
<<<<(OneOff + StartSize):4/integer-little-unsigned-unit:8>> || OneOff <- lists:sort(Offsets)>>. |
|
|
|
<<<<(OneOff + StartSize):32/integer-little-unsigned>> || OneOff <- lists:sort(Offsets)>>. |
|
|
|
buildSMIndexTable_8(Offsets, StartSize) -> |
|
|
|
<<<<(OneOff + StartSize):8/integer-little-unsigned-unit:8>> || OneOff <- lists:sort(Offsets)>>. |
|
|
|
<<<<(OneOff + StartSize):64/integer-little-unsigned>> || OneOff <- lists:sort(Offsets)>>. |
|
|
|
|
|
|
|
compactIntegerList(Integer, AccList) -> |
|
|
|
case Integer < 128 of |
|
|
@ -457,22 +457,22 @@ encodeListWithoutIndexTable(IoData, SumSize) -> |
|
|
|
if |
|
|
|
SumSize < 254 -> |
|
|
|
AllSize = SumSize + 2, |
|
|
|
Header = <<2/integer, AllSize:1/integer-little-unsigned-unit:8>>, |
|
|
|
Header = <<2/integer, AllSize:8/integer-little-unsigned>>, |
|
|
|
setSV(AllSize), |
|
|
|
[Header, IoData]; |
|
|
|
SumSize < 65533 -> |
|
|
|
AllSize = SumSize + 3, |
|
|
|
Header = <<3/integer, AllSize:2/integer-little-unsigned-unit:8>>, |
|
|
|
Header = <<3/integer, AllSize:16/integer-little-unsigned>>, |
|
|
|
setSV(AllSize), |
|
|
|
[Header, IoData]; |
|
|
|
SumSize < 4294967291 -> |
|
|
|
AllSize = SumSize + 5, |
|
|
|
Header = <<4/integer, AllSize:4/integer-little-unsigned-unit:8>>, |
|
|
|
Header = <<4/integer, AllSize:32/integer-little-unsigned>>, |
|
|
|
setSV(AllSize), |
|
|
|
[Header, IoData]; |
|
|
|
SumSize < 18446744073709551607 -> |
|
|
|
AllSize = SumSize + 9, |
|
|
|
Header = <<5/integer, AllSize:8/integer-little-unsigned-unit:8>>, |
|
|
|
Header = <<5/integer, AllSize:64/integer-little-unsigned>>, |
|
|
|
setSV(AllSize), |
|
|
|
[Header, IoData]; |
|
|
|
true -> |
|
|
@ -1425,7 +1425,7 @@ decoder(191, RestBin) -> |
|
|
|
{BinStr, LeftBin} |
|
|
|
end; |
|
|
|
decoder(192, RestBin) -> |
|
|
|
<<Length:1/integer-little-unsigned-unit:8, BinStr:Length/binary, LeftBin/bitstring>> = RestBin, |
|
|
|
<<Length:8/integer-little-unsigned, BinStr:Length/binary, LeftBin/bitstring>> = RestBin, |
|
|
|
RefSize = binary:referenced_byte_size(RestBin), |
|
|
|
case RefSize / Length > ?VpBinaryCopyRatio of |
|
|
|
true -> |
|
|
@ -1434,7 +1434,7 @@ decoder(192, RestBin) -> |
|
|
|
{BinStr, LeftBin} |
|
|
|
end; |
|
|
|
decoder(193, RestBin) -> |
|
|
|
<<Length:2/integer-little-unsigned-unit:8, BinStr:Length/binary, LeftBin/bitstring>> = RestBin, |
|
|
|
<<Length:16/integer-little-unsigned, BinStr:Length/binary, LeftBin/bitstring>> = RestBin, |
|
|
|
RefSize = binary:referenced_byte_size(RestBin), |
|
|
|
case RefSize / Length > ?VpBinaryCopyRatio of |
|
|
|
true -> |
|
|
@ -1443,7 +1443,7 @@ decoder(193, RestBin) -> |
|
|
|
{BinStr, LeftBin} |
|
|
|
end; |
|
|
|
decoder(194, RestBin) -> |
|
|
|
<<Length:3/integer-little-unsigned-unit:8, BinStr:Length/binary, LeftBin/bitstring>> = RestBin, |
|
|
|
<<Length:24/integer-little-unsigned, BinStr:Length/binary, LeftBin/bitstring>> = RestBin, |
|
|
|
RefSize = binary:referenced_byte_size(RestBin), |
|
|
|
case RefSize / Length > ?VpBinaryCopyRatio of |
|
|
|
true -> |
|
|
@ -1452,7 +1452,7 @@ decoder(194, RestBin) -> |
|
|
|
{BinStr, LeftBin} |
|
|
|
end; |
|
|
|
decoder(195, RestBin) -> |
|
|
|
<<Length:4/integer-little-unsigned-unit:8, BinStr:Length/binary, LeftBin/bitstring>> = RestBin, |
|
|
|
<<Length:32/integer-little-unsigned, BinStr:Length/binary, LeftBin/bitstring>> = RestBin, |
|
|
|
RefSize = binary:referenced_byte_size(RestBin), |
|
|
|
case RefSize / Length > ?VpBinaryCopyRatio of |
|
|
|
true -> |
|
|
@ -1461,7 +1461,7 @@ decoder(195, RestBin) -> |
|
|
|
{BinStr, LeftBin} |
|
|
|
end; |
|
|
|
decoder(196, RestBin) -> |
|
|
|
<<Length:5/integer-little-unsigned-unit:8, BinStr:Length/binary, LeftBin/bitstring>> = RestBin, |
|
|
|
<<Length:40/integer-little-unsigned, BinStr:Length/binary, LeftBin/bitstring>> = RestBin, |
|
|
|
RefSize = binary:referenced_byte_size(RestBin), |
|
|
|
case RefSize / Length > ?VpBinaryCopyRatio of |
|
|
|
true -> |
|
|
@ -1470,7 +1470,7 @@ decoder(196, RestBin) -> |
|
|
|
{BinStr, LeftBin} |
|
|
|
end; |
|
|
|
decoder(197, RestBin) -> |
|
|
|
<<Length:6/integer-little-unsigned-unit:8, BinStr:Length/binary, LeftBin/bitstring>> = RestBin, |
|
|
|
<<Length:48/integer-little-unsigned, BinStr:Length/binary, LeftBin/bitstring>> = RestBin, |
|
|
|
RefSize = binary:referenced_byte_size(RestBin), |
|
|
|
case RefSize / Length > ?VpBinaryCopyRatio of |
|
|
|
true -> |
|
|
@ -1479,7 +1479,7 @@ decoder(197, RestBin) -> |
|
|
|
{BinStr, LeftBin} |
|
|
|
end; |
|
|
|
decoder(198, RestBin) -> |
|
|
|
<<Length:7/integer-little-unsigned-unit:8, BinStr:Length/binary, LeftBin/bitstring>> = RestBin, |
|
|
|
<<Length:56/integer-little-unsigned, BinStr:Length/binary, LeftBin/bitstring>> = RestBin, |
|
|
|
RefSize = binary:referenced_byte_size(RestBin), |
|
|
|
case RefSize / Length > ?VpBinaryCopyRatio of |
|
|
|
true -> |
|
|
@ -1488,7 +1488,7 @@ decoder(198, RestBin) -> |
|
|
|
{BinStr, LeftBin} |
|
|
|
end; |
|
|
|
decoder(199, RestBin) -> |
|
|
|
<<Length:8/integer-little-unsigned-unit:8, BinStr:Length/binary, LeftBin/bitstring>> = RestBin, |
|
|
|
<<Length:64/integer-little-unsigned, BinStr:Length/binary, LeftBin/bitstring>> = RestBin, |
|
|
|
RefSize = binary:referenced_byte_size(RestBin), |
|
|
|
case RefSize / Length > ?VpBinaryCopyRatio of |
|
|
|
true -> |
|
|
@ -1497,7 +1497,7 @@ decoder(199, RestBin) -> |
|
|
|
{BinStr, LeftBin} |
|
|
|
end; |
|
|
|
decoder(244, RestBin) -> |
|
|
|
<<Length:8/integer-little-unsigned-unit:8, BinStr:Length/binary, LeftBin/bitstring>> = RestBin, |
|
|
|
<<Length:8/integer-little-unsigned, BinStr:Length/binary, LeftBin/bitstring>> = RestBin, |
|
|
|
{binary_to_atom(BinStr), LeftBin}; |
|
|
|
decoder(_, _) -> |
|
|
|
erlang:throw({error, unexpected_end}). |
|
|
|