BotInfo.deserialize constructor

BotInfo.deserialize(
  1. BinaryReader reader
)

Deserialize.

Implementation

factory BotInfo.deserialize(BinaryReader reader) {
  // Read [BotInfo] fields.
  final flags = reader.readInt32();
  final hasUserIdField = (flags & 1) != 0;
  final userId = hasUserIdField ? reader.readInt64() : null;
  final hasDescriptionField = (flags & 2) != 0;
  final description = hasDescriptionField ? reader.readString() : null;
  final hasDescriptionPhotoField = (flags & 16) != 0;
  final descriptionPhoto =
      hasDescriptionPhotoField ? reader.readObject() as PhotoBase : null;
  final hasDescriptionDocumentField = (flags & 32) != 0;
  final descriptionDocument = hasDescriptionDocumentField
      ? reader.readObject() as DocumentBase
      : null;
  final hasCommandsField = (flags & 4) != 0;
  final commands =
      hasCommandsField ? reader.readVectorObject<BotCommandBase>() : null;
  final hasMenuButtonField = (flags & 8) != 0;
  final menuButton =
      hasMenuButtonField ? reader.readObject() as BotMenuButtonBase : null;

  // Construct [BotInfo] object.
  final returnValue = BotInfo(
    userId: userId,
    description: description,
    descriptionPhoto: descriptionPhoto,
    descriptionDocument: descriptionDocument,
    commands: commands,
    menuButton: menuButton,
  );

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