StarGift.deserialize constructor

StarGift.deserialize(
  1. BinaryReader reader
)

Deserialize.

Implementation

factory StarGift.deserialize(BinaryReader reader) {
  // Read [StarGift] fields.
  final flags = reader.readInt32();
  final limited = (flags & 1) != 0;
  final soldOut = (flags & 2) != 0;
  final birthday = (flags & 4) != 0;
  final requirePremium = (flags & 128) != 0;
  final limitedPerUser = (flags & 256) != 0;
  final peerColorAvailable = (flags & 1024) != 0;
  final auction = (flags & 2048) != 0;
  final id = reader.readInt64();
  final sticker = reader.readObject() as DocumentBase;
  final stars = reader.readInt64();
  final hasAvailabilityRemainsField = (flags & 1) != 0;
  final availabilityRemains =
      hasAvailabilityRemainsField ? reader.readInt32() : null;
  final hasAvailabilityTotalField = (flags & 1) != 0;
  final availabilityTotal =
      hasAvailabilityTotalField ? reader.readInt32() : null;
  final hasAvailabilityResaleField = (flags & 16) != 0;
  final availabilityResale =
      hasAvailabilityResaleField ? reader.readInt64() : null;
  final convertStars = reader.readInt64();
  final hasFirstSaleDateField = (flags & 2) != 0;
  final firstSaleDate = hasFirstSaleDateField ? reader.readDateTime() : null;
  final hasLastSaleDateField = (flags & 2) != 0;
  final lastSaleDate = hasLastSaleDateField ? reader.readDateTime() : null;
  final hasUpgradeStarsField = (flags & 8) != 0;
  final upgradeStars = hasUpgradeStarsField ? reader.readInt64() : null;
  final hasResellMinStarsField = (flags & 16) != 0;
  final resellMinStars = hasResellMinStarsField ? reader.readInt64() : null;
  final hasTitleField = (flags & 32) != 0;
  final title = hasTitleField ? reader.readString() : null;
  final hasReleasedByField = (flags & 64) != 0;
  final releasedBy =
      hasReleasedByField ? reader.readObject() as PeerBase : null;
  final hasPerUserTotalField = (flags & 256) != 0;
  final perUserTotal = hasPerUserTotalField ? reader.readInt32() : null;
  final hasPerUserRemainsField = (flags & 256) != 0;
  final perUserRemains = hasPerUserRemainsField ? reader.readInt32() : null;
  final hasLockedUntilDateField = (flags & 512) != 0;
  final lockedUntilDate =
      hasLockedUntilDateField ? reader.readDateTime() : null;
  final hasAuctionSlugField = (flags & 2048) != 0;
  final auctionSlug = hasAuctionSlugField ? reader.readString() : null;
  final hasGiftsPerRoundField = (flags & 2048) != 0;
  final giftsPerRound = hasGiftsPerRoundField ? reader.readInt32() : null;
  final hasAuctionStartDateField = (flags & 2048) != 0;
  final auctionStartDate =
      hasAuctionStartDateField ? reader.readDateTime() : null;
  final hasUpgradeVariantsField = (flags & 4096) != 0;
  final upgradeVariants = hasUpgradeVariantsField ? reader.readInt32() : null;
  final hasBackgroundField = (flags & 8192) != 0;
  final background = hasBackgroundField
      ? reader.readObject() as StarGiftBackgroundBase
      : null;

  // Construct [StarGift] object.
  final returnValue = StarGift(
    limited: limited,
    soldOut: soldOut,
    birthday: birthday,
    requirePremium: requirePremium,
    limitedPerUser: limitedPerUser,
    peerColorAvailable: peerColorAvailable,
    auction: auction,
    id: id,
    sticker: sticker,
    stars: stars,
    availabilityRemains: availabilityRemains,
    availabilityTotal: availabilityTotal,
    availabilityResale: availabilityResale,
    convertStars: convertStars,
    firstSaleDate: firstSaleDate,
    lastSaleDate: lastSaleDate,
    upgradeStars: upgradeStars,
    resellMinStars: resellMinStars,
    title: title,
    releasedBy: releasedBy,
    perUserTotal: perUserTotal,
    perUserRemains: perUserRemains,
    lockedUntilDate: lockedUntilDate,
    auctionSlug: auctionSlug,
    giftsPerRound: giftsPerRound,
    auctionStartDate: auctionStartDate,
    upgradeVariants: upgradeVariants,
    background: background,
  );

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