packBinary method
Pack List<int>
or null.
Implementation
void packBinary(List<int>? buffer) {
// max 4 byte binary header + 1 control byte
if (_buf.length - _offset < 5) _nextBuf();
if (buffer == null) {
_d.setUint8(_offset++, 0xc0);
return;
}
final length = buffer.length;
if (length <= 0xFF) {
_d.setUint8(_offset++, 0xc4);
_d.setUint8(_offset++, length);
} else if (length <= 0xFFFF) {
_d.setUint8(_offset++, 0xc5);
_d.setUint16(_offset, length);
_offset += 2;
} else if (length <= 0xFFFFFFFF) {
_d.setUint8(_offset++, 0xc6);
_d.setUint32(_offset, length);
_offset += 4;
} else {
throw ArgumentError('Max binary length is 0xFFFFFFFF');
}
_putBytes(buffer);
}