HelpPromoData.deserialize constructor

HelpPromoData.deserialize(
  1. BinaryReader reader
)

Deserialize.

Implementation

factory HelpPromoData.deserialize(BinaryReader reader) {
  // Read [HelpPromoData] fields.
  final flags = reader.readInt32();
  final proxy = (flags & 1) != 0;
  final expires = reader.readDateTime();
  final hasPeerField = (flags & 8) != 0;
  final peer = hasPeerField ? reader.readObject() as PeerBase : null;
  final hasPsaTypeField = (flags & 2) != 0;
  final psaType = hasPsaTypeField ? reader.readString() : null;
  final hasPsaMessageField = (flags & 4) != 0;
  final psaMessage = hasPsaMessageField ? reader.readString() : null;
  final pendingSuggestions = reader.readVectorString();
  final dismissedSuggestions = reader.readVectorString();
  final hasCustomPendingSuggestionField = (flags & 16) != 0;
  final customPendingSuggestion = hasCustomPendingSuggestionField
      ? reader.readObject() as PendingSuggestionBase
      : null;
  final chats = reader.readVectorObject<ChatBase>();
  final users = reader.readVectorObject<UserBase>();

  // Construct [HelpPromoData] object.
  final returnValue = HelpPromoData(
    proxy: proxy,
    expires: expires,
    peer: peer,
    psaType: psaType,
    psaMessage: psaMessage,
    pendingSuggestions: pendingSuggestions.items,
    dismissedSuggestions: dismissedSuggestions.items,
    customPendingSuggestion: customPendingSuggestion,
    chats: chats.items,
    users: users.items,
  );

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