MessageFwdHeader.deserialize constructor

MessageFwdHeader.deserialize(
  1. BinaryReader reader
)

Deserialize.

Implementation

factory MessageFwdHeader.deserialize(BinaryReader reader) {
  // Read [MessageFwdHeader] fields.
  final flags = reader.readInt32();
  final imported = (flags & 128) != 0;
  final savedOut = (flags & 2048) != 0;
  final hasFromIdField = (flags & 1) != 0;
  final fromId = hasFromIdField ? reader.readObject() as PeerBase : null;
  final hasFromNameField = (flags & 32) != 0;
  final fromName = hasFromNameField ? reader.readString() : null;
  final date = reader.readDateTime();
  final hasChannelPostField = (flags & 4) != 0;
  final channelPost = hasChannelPostField ? reader.readInt32() : null;
  final hasPostAuthorField = (flags & 8) != 0;
  final postAuthor = hasPostAuthorField ? reader.readString() : null;
  final hasSavedFromPeerField = (flags & 16) != 0;
  final savedFromPeer =
      hasSavedFromPeerField ? reader.readObject() as PeerBase : null;
  final hasSavedFromMsgIdField = (flags & 16) != 0;
  final savedFromMsgId = hasSavedFromMsgIdField ? reader.readInt32() : null;
  final hasSavedFromIdField = (flags & 256) != 0;
  final savedFromId =
      hasSavedFromIdField ? reader.readObject() as PeerBase : null;
  final hasSavedFromNameField = (flags & 512) != 0;
  final savedFromName = hasSavedFromNameField ? reader.readString() : null;
  final hasSavedDateField = (flags & 1024) != 0;
  final savedDate = hasSavedDateField ? reader.readDateTime() : null;
  final hasPsaTypeField = (flags & 64) != 0;
  final psaType = hasPsaTypeField ? reader.readString() : null;

  // Construct [MessageFwdHeader] object.
  final returnValue = MessageFwdHeader(
    imported: imported,
    savedOut: savedOut,
    fromId: fromId,
    fromName: fromName,
    date: date,
    channelPost: channelPost,
    postAuthor: postAuthor,
    savedFromPeer: savedFromPeer,
    savedFromMsgId: savedFromMsgId,
    savedFromId: savedFromId,
    savedFromName: savedFromName,
    savedDate: savedDate,
    psaType: psaType,
  );

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