Boost.deserialize constructor

Boost.deserialize(
  1. BinaryReader reader
)

Deserialize.

Implementation

factory Boost.deserialize(BinaryReader reader) {
  // Read [Boost] fields.
  final flags = reader.readInt32();
  final gift = (flags & 2) != 0;
  final giveaway = (flags & 4) != 0;
  final unclaimed = (flags & 8) != 0;
  final id = reader.readString();
  final hasUserIdField = (flags & 1) != 0;
  final userId = hasUserIdField ? reader.readInt64() : null;
  final hasGiveawayMsgIdField = (flags & 4) != 0;
  final giveawayMsgId = hasGiveawayMsgIdField ? reader.readInt32() : null;
  final date = reader.readDateTime();
  final expires = reader.readDateTime();
  final hasUsedGiftSlugField = (flags & 16) != 0;
  final usedGiftSlug = hasUsedGiftSlugField ? reader.readString() : null;
  final hasMultiplierField = (flags & 32) != 0;
  final multiplier = hasMultiplierField ? reader.readInt32() : null;

  // Construct [Boost] object.
  final returnValue = Boost(
    gift: gift,
    giveaway: giveaway,
    unclaimed: unclaimed,
    id: id,
    userId: userId,
    giveawayMsgId: giveawayMsgId,
    date: date,
    expires: expires,
    usedGiftSlug: usedGiftSlug,
    multiplier: multiplier,
  );

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