MessageMediaGiveaway.deserialize constructor

MessageMediaGiveaway.deserialize(
  1. BinaryReader reader
)

Deserialize.

Implementation

factory MessageMediaGiveaway.deserialize(BinaryReader reader) {
  // Read [MessageMediaGiveaway] fields.
  final flags = reader.readInt32();
  final onlyNewSubscribers = (flags & 1) != 0;
  final winnersAreVisible = (flags & 4) != 0;
  final channels = reader.readVectorInt64();
  final hasCountriesIso2Field = (flags & 2) != 0;
  final countriesIso2 =
      hasCountriesIso2Field ? reader.readVectorString() : null;
  final hasPrizeDescriptionField = (flags & 8) != 0;
  final prizeDescription =
      hasPrizeDescriptionField ? reader.readString() : null;
  final quantity = reader.readInt32();
  final hasMonthsField = (flags & 16) != 0;
  final months = hasMonthsField ? reader.readInt32() : null;
  final hasStarsField = (flags & 32) != 0;
  final stars = hasStarsField ? reader.readInt64() : null;
  final untilDate = reader.readDateTime();

  // Construct [MessageMediaGiveaway] object.
  final returnValue = MessageMediaGiveaway(
    onlyNewSubscribers: onlyNewSubscribers,
    winnersAreVisible: winnersAreVisible,
    channels: channels.items,
    countriesIso2: countriesIso2?.items,
    prizeDescription: prizeDescription,
    quantity: quantity,
    months: months,
    stars: stars,
    untilDate: untilDate,
  );

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