Chat.deserialize constructor

Chat.deserialize(
  1. BinaryReader reader
)

Deserialize.

Implementation

factory Chat.deserialize(BinaryReader reader) {
  // Read [Chat] fields.
  final flags = reader.readInt32();
  final creator = (flags & 1) != 0;
  final left = (flags & 4) != 0;
  final deactivated = (flags & 32) != 0;
  final callActive = (flags & 8388608) != 0;
  final callNotEmpty = (flags & 16777216) != 0;
  final noforwards = (flags & 33554432) != 0;
  final id = reader.readInt64();
  final title = reader.readString();
  final photo = reader.readObject() as ChatPhotoBase;
  final participantsCount = reader.readInt32();
  final date = reader.readDateTime();
  final version = reader.readInt32();
  final hasMigratedToField = (flags & 64) != 0;
  final migratedTo =
      hasMigratedToField ? reader.readObject() as InputChannelBase : null;
  final hasAdminRightsField = (flags & 16384) != 0;
  final adminRights =
      hasAdminRightsField ? reader.readObject() as ChatAdminRightsBase : null;
  final hasDefaultBannedRightsField = (flags & 262144) != 0;
  final defaultBannedRights = hasDefaultBannedRightsField
      ? reader.readObject() as ChatBannedRightsBase
      : null;

  // Construct [Chat] object.
  final returnValue = Chat(
    creator: creator,
    left: left,
    deactivated: deactivated,
    callActive: callActive,
    callNotEmpty: callNotEmpty,
    noforwards: noforwards,
    id: id,
    title: title,
    photo: photo,
    participantsCount: participantsCount,
    date: date,
    version: version,
    migratedTo: migratedTo,
    adminRights: adminRights,
    defaultBannedRights: defaultBannedRights,
  );

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