binary property

Uint8List get binary

Implementation

Uint8List get binary {
  Uint8List b = Uint8List(2000 + attachement.lengthInBytes);
  var bdata = new ByteData.view(b.buffer);

  bdata.setUint8(0, type);
  int wi = 2;
  for (var i in binString(nick)) {
    bdata.setUint8(wi++, i);
  }
  for (var i in binString(avatar)) {
    bdata.setUint8(wi++, i);
  }
  for (var i in binString(text)) {
    bdata.setUint8(wi++, i);
  }
  for (var i in binString(shortLinkOfPrevious)) {
    bdata.setUint8(wi++, i);
  }
  for (var i in binString(shortLinkOfPP)) {
    bdata.setUint8(wi++, i);
  }
  bdata.setUint64(wi, timestamp);
  wi += 8;
  if (attachement.isEmpty) {
    wi += 8;
  } else {
    bdata.setUint64(wi, attachement.lengthInBytes);
    wi += 8;
    attachement.map((e) => bdata.setUint8(wi++, e));
  }
  for (var i in binString(cid)) {
    bdata.setUint8(wi++, i);
  }
  for (var i in binString(mimeType)) {
    bdata.setUint8(wi++, i);
  }
  for (var i in binString(xxHash)) {
    bdata.setUint8(wi++, i);
  }

  bdata.setUint32(4, attachementLength);
  wi += 4;
  return b.sublist(0, wi);
}