writeFieldBeginInternal method

void writeFieldBeginInternal(
  1. TField field,
  2. int typeOverride
)

Implementation

void writeFieldBeginInternal(TField field, int typeOverride) {
  // if there's a type override, use that.
  int typeToWrite = typeOverride == -1.toSigned(8)
      ? getCompactType(field.type)
      : typeOverride;

  // check if we can delta encode the field id
  if (field.id > lastFieldId_ && field.id - lastFieldId_ <= 15) {
    // include the type delta with the field ID
    writeByteDirect((field.id - lastFieldId_) << 4 | typeToWrite);
  } else {
    // write separate type and ID values
    writeByteDirect(typeToWrite);
    writeI16(field.id);
  }
  lastFieldId_ = field.id;
}