本期記錄一下Zipack的類型樹和字首表。從類型樹上看,Zipack一共有21種資料類型,包括15種已配置設定類型和6種保留類型,15種已配置設定類型中又有11種基本類型和4種複合類型,11種基本類型中有5個是實數類型。大家可以按這種分類方法把所有類型一一對應上去,了解一遍。
基于Huffman編碼的類型樹
圖中的樹形結構使用了制表符
字首表明細
類型字首
長度段
長度含義
負載
迷你自然數
無
\
7bit
VLQ正整數
1111 1000
vlq自然數+128
VLQ負整數
1111 1001
-1-vlq自然數
正小數
1111 0010
(精度反轉算法)
負小數
1111 0011
短字元串
100
5bit
字元的數量
zipack字元串
VLQ字元串
1111 0101
vlq自然數+32
字典中的“鍵”
vlq自然數
純位元組流
1111 0100
VLQ自然數
位元組數量
位元組流
Boolean
1111 0000、1111,0001
null/nil
1111 1010
短清單
101
清單元素的數量
子元素無縫拼接
VLQ清單
1111 0110
VLQ自然數+32
迷你字典
110
鍵值對的數量
鍵值無縫拼接
字典
1111 0111
保留類型
FB、FC、FD、FE、FF
保留類型(帶長度)
1110 0000 ~ 1110 1111
4bit
某種保留對象的數量