AccountPasswordInputSettings.deserialize constructor

AccountPasswordInputSettings.deserialize(
  1. BinaryReader reader
)

Deserialize.

Implementation

factory AccountPasswordInputSettings.deserialize(BinaryReader reader) {
  // Read [AccountPasswordInputSettings] fields.
  final flags = reader.readInt32();
  final hasNewAlgoField = (flags & 1) != 0;
  final newAlgo =
      hasNewAlgoField ? reader.readObject() as PasswordKdfAlgoBase : null;
  final hasNewPasswordHashField = (flags & 1) != 0;
  final newPasswordHash = hasNewPasswordHashField ? reader.readBytes() : null;
  final hasHintField = (flags & 1) != 0;
  final hint = hasHintField ? reader.readString() : null;
  final hasEmailField = (flags & 2) != 0;
  final email = hasEmailField ? reader.readString() : null;
  final hasNewSecureSettingsField = (flags & 4) != 0;
  final newSecureSettings = hasNewSecureSettingsField
      ? reader.readObject() as SecureSecretSettingsBase
      : null;

  // Construct [AccountPasswordInputSettings] object.
  final returnValue = AccountPasswordInputSettings(
    newAlgo: newAlgo,
    newPasswordHash: newPasswordHash,
    hint: hint,
    email: email,
    newSecureSettings: newSecureSettings,
  );

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