EphemeralMessage.deserialize constructor

EphemeralMessage.deserialize(
  1. BinaryReader reader
)

Deserialize.

Implementation

factory EphemeralMessage.deserialize(BinaryReader reader) {
  // Read [EphemeralMessage] fields.
  final flags = reader.readInt32();
  final out = (flags & 1) != 0;
  final id = reader.readInt32();
  final fromId = reader.readObject() as PeerBase;
  final peerId = reader.readObject() as PeerBase;
  final receiverId = reader.readInt64();
  final hasTopMsgIdField = (flags & 2) != 0;
  final topMsgId = hasTopMsgIdField ? reader.readInt32() : null;
  final date = reader.readDateTime();
  final message = reader.readString();
  final hasEntitiesField = (flags & 4) != 0;
  final entities =
      hasEntitiesField ? reader.readVectorObject<MessageEntityBase>() : null;
  final hasMediaField = (flags & 8) != 0;
  final media =
      hasMediaField ? reader.readObject() as MessageMediaBase : null;
  final hasReplyMarkupField = (flags & 16) != 0;
  final replyMarkup =
      hasReplyMarkupField ? reader.readObject() as ReplyMarkupBase : null;
  final hasReplyToField = (flags & 64) != 0;
  final replyTo =
      hasReplyToField ? reader.readObject() as MessageReplyHeaderBase : null;

  // Construct [EphemeralMessage] object.
  final returnValue = EphemeralMessage(
    out: out,
    id: id,
    fromId: fromId,
    peerId: peerId,
    receiverId: receiverId,
    topMsgId: topMsgId,
    date: date,
    message: message,
    entities: entities?.items,
    media: media,
    replyMarkup: replyMarkup,
    replyTo: replyTo,
  );

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