concise-encoding
concise-encoding copied to clipboard
Redundant empty arrays?
Right now, there are separate length=0 arrays for each numeric type (int8, uint16, int16, etc).
Since all numeric types in CE are considered equivalent, aren't all numeric arrays with 0 elements equivalent, too?
Thus, we could shift all of the fixed-size arrays from len=0...15 to len=1...16, and allow 16-element arrays to be encoded more concisely (1 fewer byte), without taking up any more space on plane 2.
That is, instead of needing [94 00], [94 10], [94 20], etc., we can encode any empty numeric array as [95 00], just as now. The only length-0 typed array we need on plane 2 is UUID.