MessageActionGiftCode.deserialize constructor

MessageActionGiftCode.deserialize(
  1. BinaryReader reader
)

Deserialize.

Implementation

factory MessageActionGiftCode.deserialize(BinaryReader reader) {
  // Read [MessageActionGiftCode] fields.
  final flags = reader.readInt32();
  final viaGiveaway = (flags & 1) != 0;
  final unclaimed = (flags & 4) != 0;
  final hasBoostPeerField = (flags & 2) != 0;
  final boostPeer =
      hasBoostPeerField ? reader.readObject() as PeerBase : null;
  final months = reader.readInt32();
  final slug = reader.readString();
  final hasCurrencyField = (flags & 4) != 0;
  final currency = hasCurrencyField ? reader.readString() : null;
  final hasAmountField = (flags & 4) != 0;
  final amount = hasAmountField ? reader.readInt64() : null;
  final hasCryptoCurrencyField = (flags & 8) != 0;
  final cryptoCurrency = hasCryptoCurrencyField ? reader.readString() : null;
  final hasCryptoAmountField = (flags & 8) != 0;
  final cryptoAmount = hasCryptoAmountField ? reader.readInt64() : null;

  // Construct [MessageActionGiftCode] object.
  final returnValue = MessageActionGiftCode(
    viaGiveaway: viaGiveaway,
    unclaimed: unclaimed,
    boostPeer: boostPeer,
    months: months,
    slug: slug,
    currency: currency,
    amount: amount,
    cryptoCurrency: cryptoCurrency,
    cryptoAmount: cryptoAmount,
  );

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