packObject method

void packObject(
  1. Map obj
)

Implementation

void packObject(Map<dynamic, Packable> obj) {
  var keys = obj.keys.toList();
  int length = keys.length;
  if (length <= 0x0f) {
    packUint8(0x80 + length);
  } else if (length <= 0xffff) {
    _bufferBuilder.append(0xde);
    packUint16(length);
  } else if (length <= 0xffffffff) {
    _bufferBuilder.append(0xdf);
    packUint32(length);
  } else {
    throw Exception('Invalid length');
  }

  for (var key in keys) {
    pack(key);
    pack(obj[key]);
  }
}