StarsSubscription.deserialize constructor

StarsSubscription.deserialize(
  1. BinaryReader reader
)

Deserialize.

Implementation

factory StarsSubscription.deserialize(BinaryReader reader) {
  // Read [StarsSubscription] fields.
  final flags = reader.readInt32();
  final canceled = (flags & 1) != 0;
  final canRefulfill = (flags & 2) != 0;
  final missingBalance = (flags & 4) != 0;
  final botCanceled = (flags & 128) != 0;
  final id = reader.readString();
  final peer = reader.readObject() as PeerBase;
  final untilDate = reader.readDateTime();
  final pricing = reader.readObject() as StarsSubscriptionPricingBase;
  final hasChatInviteHashField = (flags & 8) != 0;
  final chatInviteHash = hasChatInviteHashField ? reader.readString() : null;
  final hasTitleField = (flags & 16) != 0;
  final title = hasTitleField ? reader.readString() : null;
  final hasPhotoField = (flags & 32) != 0;
  final photo = hasPhotoField ? reader.readObject() as WebDocumentBase : null;
  final hasInvoiceSlugField = (flags & 64) != 0;
  final invoiceSlug = hasInvoiceSlugField ? reader.readString() : null;

  // Construct [StarsSubscription] object.
  final returnValue = StarsSubscription(
    canceled: canceled,
    canRefulfill: canRefulfill,
    missingBalance: missingBalance,
    botCanceled: botCanceled,
    id: id,
    peer: peer,
    untilDate: untilDate,
    pricing: pricing,
    chatInviteHash: chatInviteHash,
    title: title,
    photo: photo,
    invoiceSlug: invoiceSlug,
  );

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