MessageReplyHeader.deserialize constructor

MessageReplyHeader.deserialize(
  1. BinaryReader reader
)

Deserialize.

Implementation

factory MessageReplyHeader.deserialize(BinaryReader reader) {
  // Read [MessageReplyHeader] fields.
  final flags = reader.readInt32();
  final replyToScheduled = (flags & 4) != 0;
  final forumTopic = (flags & 8) != 0;
  final quote = (flags & 512) != 0;
  final hasReplyToMsgIdField = (flags & 16) != 0;
  final replyToMsgId = hasReplyToMsgIdField ? reader.readInt32() : null;
  final hasReplyToPeerIdField = (flags & 1) != 0;
  final replyToPeerId =
      hasReplyToPeerIdField ? reader.readObject() as PeerBase : null;
  final hasReplyFromField = (flags & 32) != 0;
  final replyFrom =
      hasReplyFromField ? reader.readObject() as MessageFwdHeaderBase : null;
  final hasReplyMediaField = (flags & 256) != 0;
  final replyMedia =
      hasReplyMediaField ? reader.readObject() as MessageMediaBase : null;
  final hasReplyToTopIdField = (flags & 2) != 0;
  final replyToTopId = hasReplyToTopIdField ? reader.readInt32() : null;
  final hasQuoteTextField = (flags & 64) != 0;
  final quoteText = hasQuoteTextField ? reader.readString() : null;
  final hasQuoteEntitiesField = (flags & 128) != 0;
  final quoteEntities = hasQuoteEntitiesField
      ? reader.readVectorObject<MessageEntityBase>()
      : null;
  final hasQuoteOffsetField = (flags & 1024) != 0;
  final quoteOffset = hasQuoteOffsetField ? reader.readInt32() : null;

  // Construct [MessageReplyHeader] object.
  final returnValue = MessageReplyHeader(
    replyToScheduled: replyToScheduled,
    forumTopic: forumTopic,
    quote: quote,
    replyToMsgId: replyToMsgId,
    replyToPeerId: replyToPeerId,
    replyFrom: replyFrom,
    replyMedia: replyMedia,
    replyToTopId: replyToTopId,
    quoteText: quoteText,
    quoteEntities: quoteEntities,
    quoteOffset: quoteOffset,
  );

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