binary property

Uint8List binary

Implementation

Uint8List get binary {
  Uint8List b = Uint8List(942000);
  var bdata = new ByteData.view(b.buffer);
  //first word is lenght
  int wi = 2;
  //skip tangle for historical reasons
  bdata.setUint16(wi, capsuleFieldType.empty.index);
  wi += 2;
  /*bdata.setUint8(wi++, capsuleFieldType.tangle.index);
  bdata.setUint16(wi, tangle.lengthInBytes);
  wi += 2;
  tangle.forEach((element) {
    bdata.setUint8(wi++, element);
  });*/

  if (katamari.isEmpty) {
    bdata.setUint8(wi++, capsuleFieldType.empty.index);
  } else {
    bdata.setUint8(wi++, capsuleFieldType.katamari.index);
    bdata.setUint16(wi, katamari.lengthInBytes);
    wi += 2;
    katamari.forEach((element) {
      bdata.setUint8(wi++, element);
    });
  }
  if (moderatorEntrySet.isEmpty) {
    bdata.setUint8(wi++, capsuleFieldType.empty.index);
  } else {
    bdata.setUint8(wi++, capsuleFieldType.threadEntries.index);
    bdata.setUint16(wi, moderatorEntrySet.lengthInBytes);
    wi += 2;
    moderatorEntrySet.forEach((element) {
      bdata.setUint8(wi++, element);
    });
  }
  if (groupEntries.isEmpty) {
    bdata.setUint8(wi++, capsuleFieldType.empty.index);
  } else {
    bdata.setUint8(wi++, capsuleFieldType.groupEntries.index);
    bdata.setUint16(wi, groupEntries.lengthInBytes);
    wi += 2;
    groupEntries.forEach((element) {
      bdata.setUint8(wi++, element);
    });
  }
  bdata.setUint16(0, wi);
  return b.sublist(0, wi);
}