StarRefProgram.deserialize constructor

StarRefProgram.deserialize(
  1. BinaryReader reader
)

Deserialize.

Implementation

factory StarRefProgram.deserialize(BinaryReader reader) {
  // Read [StarRefProgram] fields.
  final flags = reader.readInt32();
  final botId = reader.readInt64();
  final commissionPermille = reader.readInt32();
  final hasDurationMonthsField = (flags & 1) != 0;
  final durationMonths = hasDurationMonthsField ? reader.readInt32() : null;
  final hasEndDateField = (flags & 2) != 0;
  final endDate = hasEndDateField ? reader.readDateTime() : null;
  final hasDailyRevenuePerUserField = (flags & 4) != 0;
  final dailyRevenuePerUser = hasDailyRevenuePerUserField
      ? reader.readObject() as StarsAmountBase
      : null;

  // Construct [StarRefProgram] object.
  final returnValue = StarRefProgram(
    botId: botId,
    commissionPermille: commissionPermille,
    durationMonths: durationMonths,
    endDate: endDate,
    dailyRevenuePerUser: dailyRevenuePerUser,
  );

  // Now return the deserialized [StarRefProgram].
  return returnValue;
}