packListLength method
Pack List.length or null
.
Implementation
void packListLength(int? length) {
// max 4 length header + 1 control byte
if (_buf.length - _offset < 5) _nextBuf();
if (length == null) {
_d.setUint8(_offset++, 0xc0);
} else if (length <= 0xF) {
_d.setUint8(_offset++, 0x90 | length);
} else if (length <= 0xFFFF) {
_d.setUint8(_offset++, 0xdc);
_d.setUint16(_offset, length);
_offset += 2;
} else if (length <= 0xFFFFFFFF) {
_d.setUint8(_offset++, 0xdd);
_d.setUint32(_offset, length);
_offset += 4;
} else {
throw ArgumentError('Max list length is 0xFFFFFFFF');
}
}