PaymentsStarsStatus.deserialize constructor

PaymentsStarsStatus.deserialize(
  1. BinaryReader reader
)

Deserialize.

Implementation

factory PaymentsStarsStatus.deserialize(BinaryReader reader) {
  // Read [PaymentsStarsStatus] fields.
  final flags = reader.readInt32();
  final balance = reader.readObject() as StarsAmountBase;
  final hasSubscriptionsField = (flags & 2) != 0;
  final subscriptions = hasSubscriptionsField
      ? reader.readVectorObject<StarsSubscriptionBase>()
      : null;
  final hasSubscriptionsNextOffsetField = (flags & 4) != 0;
  final subscriptionsNextOffset =
      hasSubscriptionsNextOffsetField ? reader.readString() : null;
  final hasSubscriptionsMissingBalanceField = (flags & 16) != 0;
  final subscriptionsMissingBalance =
      hasSubscriptionsMissingBalanceField ? reader.readInt64() : null;
  final hasHistoryField = (flags & 8) != 0;
  final history = hasHistoryField
      ? reader.readVectorObject<StarsTransactionBase>()
      : null;
  final hasNextOffsetField = (flags & 1) != 0;
  final nextOffset = hasNextOffsetField ? reader.readString() : null;
  final chats = reader.readVectorObject<ChatBase>();
  final users = reader.readVectorObject<UserBase>();

  // Construct [PaymentsStarsStatus] object.
  final returnValue = PaymentsStarsStatus(
    balance: balance,
    subscriptions: subscriptions?.items,
    subscriptionsNextOffset: subscriptionsNextOffset,
    subscriptionsMissingBalance: subscriptionsMissingBalance,
    history: history?.items,
    nextOffset: nextOffset,
    chats: chats.items,
    users: users.items,
  );

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