// GENERATED CODE - DO NOT MODIFY BY HAND

part of 'input_buttons_test_state.dart';

// **************************************************************************
// CopyWithGenerator
// **************************************************************************

abstract class _$InputButtonsTestStateCWProxy {
  InputButtonsTestState seed(int seed);

  InputButtonsTestState word(String word);

  InputButtonsTestState answer(List<String> answer);

  InputButtonsTestState answerIds(List<String> answerIds);

  InputButtonsTestState isCorrect(bool isCorrect);

  InputButtonsTestState isAnswered(bool isAnswered);

  InputButtonsTestState isSkipped(bool isSkipped);

  InputButtonsTestState testType(TestQuestionType testType);

  /// This function **does support** nullification of nullable fields. All `null` values passed to `non-nullable` fields will be ignored. You can also use `InputButtonsTestState(...).copyWith.fieldName(...)` to override fields one at a time with nullification support.
  ///
  /// Usage
  /// ```dart
  /// InputButtonsTestState(...).copyWith(id: 12, name: "My name")
  /// ````
  InputButtonsTestState call({
    int? seed,
    String? word,
    List<String>? answer,
    List<String>? answerIds,
    bool? isCorrect,
    bool? isAnswered,
    bool? isSkipped,
    TestQuestionType? testType,
  });
}

/// Proxy class for `copyWith` functionality. This is a callable class and can be used as follows: `instanceOfInputButtonsTestState.copyWith(...)`. Additionally contains functions for specific fields e.g. `instanceOfInputButtonsTestState.copyWith.fieldName(...)`
class _$InputButtonsTestStateCWProxyImpl
    implements _$InputButtonsTestStateCWProxy {
  const _$InputButtonsTestStateCWProxyImpl(this._value);

  final InputButtonsTestState _value;

  @override
  InputButtonsTestState seed(int seed) => this(seed: seed);

  @override
  InputButtonsTestState word(String word) => this(word: word);

  @override
  InputButtonsTestState answer(List<String> answer) => this(answer: answer);

  @override
  InputButtonsTestState answerIds(List<String> answerIds) =>
      this(answerIds: answerIds);

  @override
  InputButtonsTestState isCorrect(bool isCorrect) => this(isCorrect: isCorrect);

  @override
  InputButtonsTestState isAnswered(bool isAnswered) =>
      this(isAnswered: isAnswered);

  @override
  InputButtonsTestState isSkipped(bool isSkipped) => this(isSkipped: isSkipped);

  @override
  InputButtonsTestState testType(TestQuestionType testType) =>
      this(testType: testType);

  @override

  /// This function **does support** nullification of nullable fields. All `null` values passed to `non-nullable` fields will be ignored. You can also use `InputButtonsTestState(...).copyWith.fieldName(...)` to override fields one at a time with nullification support.
  ///
  /// Usage
  /// ```dart
  /// InputButtonsTestState(...).copyWith(id: 12, name: "My name")
  /// ````
  InputButtonsTestState call({
    Object? seed = const $CopyWithPlaceholder(),
    Object? word = const $CopyWithPlaceholder(),
    Object? answer = const $CopyWithPlaceholder(),
    Object? answerIds = const $CopyWithPlaceholder(),
    Object? isCorrect = const $CopyWithPlaceholder(),
    Object? isAnswered = const $CopyWithPlaceholder(),
    Object? isSkipped = const $CopyWithPlaceholder(),
    Object? testType = const $CopyWithPlaceholder(),
  }) {
    return InputButtonsTestState(
      seed: seed == const $CopyWithPlaceholder() || seed == null
          ? _value.seed
          // ignore: cast_nullable_to_non_nullable
          : seed as int,
      word: word == const $CopyWithPlaceholder() || word == null
          ? _value.word
          // ignore: cast_nullable_to_non_nullable
          : word as String,
      answer: answer == const $CopyWithPlaceholder() || answer == null
          ? _value.answer
          // ignore: cast_nullable_to_non_nullable
          : answer as List<String>,
      answerIds: answerIds == const $CopyWithPlaceholder() || answerIds == null
          ? _value.answerIds
          // ignore: cast_nullable_to_non_nullable
          : answerIds as List<String>,
      isCorrect: isCorrect == const $CopyWithPlaceholder() || isCorrect == null
          ? _value.isCorrect
          // ignore: cast_nullable_to_non_nullable
          : isCorrect as bool,
      isAnswered:
          isAnswered == const $CopyWithPlaceholder() || isAnswered == null
              ? _value.isAnswered
              // ignore: cast_nullable_to_non_nullable
              : isAnswered as bool,
      isSkipped: isSkipped == const $CopyWithPlaceholder() || isSkipped == null
          ? _value.isSkipped
          // ignore: cast_nullable_to_non_nullable
          : isSkipped as bool,
      testType: testType == const $CopyWithPlaceholder() || testType == null
          ? _value.testType
          // ignore: cast_nullable_to_non_nullable
          : testType as TestQuestionType,
    );
  }
}

extension $InputButtonsTestStateCopyWith on InputButtonsTestState {
  /// Returns a callable class that can be used as follows: `instanceOfInputButtonsTestState.copyWith(...)` or like so:`instanceOfInputButtonsTestState.copyWith.fieldName(...)`.
  // ignore: library_private_types_in_public_api
  _$InputButtonsTestStateCWProxy get copyWith =>
      _$InputButtonsTestStateCWProxyImpl(this);
}

// **************************************************************************
// JsonSerializableGenerator
// **************************************************************************

InputButtonsTestState _$InputButtonsTestStateFromJson(
        Map<String, dynamic> json) =>
    InputButtonsTestState(
      seed: (json['seed'] as num).toInt(),
      word: json['word'] as String,
      answer: (json['answer'] as List<dynamic>?)
              ?.map((e) => e as String)
              .toList() ??
          const [],
      answerIds: (json['answerIds'] as List<dynamic>?)
              ?.map((e) => e as String)
              .toList() ??
          const [],
      isCorrect: json['isCorrect'] as bool? ?? false,
      isAnswered: json['isAnswered'] as bool? ?? false,
      isSkipped: json['isSkipped'] as bool? ?? false,
      testType:
          $enumDecodeNullable(_$TestQuestionTypeEnumMap, json['testType']) ??
              TestQuestionType.simple,
    );

Map<String, dynamic> _$InputButtonsTestStateToJson(
        InputButtonsTestState instance) =>
    <String, dynamic>{
      'testType': _$TestQuestionTypeEnumMap[instance.testType]!,
      'word': instance.word,
      'answer': instance.answer,
      'answerIds': instance.answerIds,
      'isCorrect': instance.isCorrect,
      'isAnswered': instance.isAnswered,
      'isSkipped': instance.isSkipped,
      'seed': instance.seed,
    };

const _$TestQuestionTypeEnumMap = {
  TestQuestionType.simple: 'simple',
  TestQuestionType.input_buttons: 'input_buttons',
  TestQuestionType.matrix: 'matrix',
  TestQuestionType.match: 'match',
  TestQuestionType.undefined: 'undefined',
};
