// coverage:ignore-file
// GENERATED CODE - DO NOT MODIFY BY HAND
// ignore_for_file: type=lint
// ignore_for_file: unused_element, deprecated_member_use, deprecated_member_use_from_same_package, use_function_type_syntax_for_parameters, unnecessary_const, avoid_init_to_null, invalid_override_different_default_values_named, prefer_expression_function_bodies, annotate_overrides, invalid_annotation_target, unnecessary_question_mark

part of 'extension_model.dart';

// **************************************************************************
// FreezedGenerator
// **************************************************************************

T _$identity<T>(T value) => value;

final _privateConstructorUsedError = UnsupportedError(
    'It seems like you constructed your class using `MyClass._()`. This constructor is only meant to be used by freezed and you are not supposed to need it nor use it.\nPlease check the documentation here for more information: https://github.com/rrousselGit/freezed#custom-getters-and-methods');

Extension _$ExtensionFromJson(Map<String, dynamic> json) {
  return _Extension.fromJson(json);
}

/// @nodoc
mixin _$Extension {
  String? get apkName => throw _privateConstructorUsedError;
  bool? get hasUpdate => throw _privateConstructorUsedError;
  String? get iconUrl => throw _privateConstructorUsedError;
  bool? get installed => throw _privateConstructorUsedError;
  bool? get isNsfw => throw _privateConstructorUsedError;
  @JsonKey(
      fromJson: LanguageJsonConverter.fromJson,
      toJson: LanguageJsonConverter.toJson)
  Language? get lang => throw _privateConstructorUsedError;
  String? get name => throw _privateConstructorUsedError;
  bool? get obsolete => throw _privateConstructorUsedError;
  String? get pkgName => throw _privateConstructorUsedError;
  int? get versionCode => throw _privateConstructorUsedError;
  String? get versionName => throw _privateConstructorUsedError;

  Map<String, dynamic> toJson() => throw _privateConstructorUsedError;
  @JsonKey(ignore: true)
  $ExtensionCopyWith<Extension> get copyWith =>
      throw _privateConstructorUsedError;
}

/// @nodoc
abstract class $ExtensionCopyWith<$Res> {
  factory $ExtensionCopyWith(Extension value, $Res Function(Extension) then) =
      _$ExtensionCopyWithImpl<$Res, Extension>;
  @useResult
  $Res call(
      {String? apkName,
      bool? hasUpdate,
      String? iconUrl,
      bool? installed,
      bool? isNsfw,
      @JsonKey(
          fromJson: LanguageJsonConverter.fromJson,
          toJson: LanguageJsonConverter.toJson)
      Language? lang,
      String? name,
      bool? obsolete,
      String? pkgName,
      int? versionCode,
      String? versionName});

  $LanguageCopyWith<$Res>? get lang;
}

/// @nodoc
class _$ExtensionCopyWithImpl<$Res, $Val extends Extension>
    implements $ExtensionCopyWith<$Res> {
  _$ExtensionCopyWithImpl(this._value, this._then);

  // ignore: unused_field
  final $Val _value;
  // ignore: unused_field
  final $Res Function($Val) _then;

  @pragma('vm:prefer-inline')
  @override
  $Res call({
    Object? apkName = freezed,
    Object? hasUpdate = freezed,
    Object? iconUrl = freezed,
    Object? installed = freezed,
    Object? isNsfw = freezed,
    Object? lang = freezed,
    Object? name = freezed,
    Object? obsolete = freezed,
    Object? pkgName = freezed,
    Object? versionCode = freezed,
    Object? versionName = freezed,
  }) {
    return _then(_value.copyWith(
      apkName: freezed == apkName
          ? _value.apkName
          : apkName // ignore: cast_nullable_to_non_nullable
              as String?,
      hasUpdate: freezed == hasUpdate
          ? _value.hasUpdate
          : hasUpdate // ignore: cast_nullable_to_non_nullable
              as bool?,
      iconUrl: freezed == iconUrl
          ? _value.iconUrl
          : iconUrl // ignore: cast_nullable_to_non_nullable
              as String?,
      installed: freezed == installed
          ? _value.installed
          : installed // ignore: cast_nullable_to_non_nullable
              as bool?,
      isNsfw: freezed == isNsfw
          ? _value.isNsfw
          : isNsfw // ignore: cast_nullable_to_non_nullable
              as bool?,
      lang: freezed == lang
          ? _value.lang
          : lang // ignore: cast_nullable_to_non_nullable
              as Language?,
      name: freezed == name
          ? _value.name
          : name // ignore: cast_nullable_to_non_nullable
              as String?,
      obsolete: freezed == obsolete
          ? _value.obsolete
          : obsolete // ignore: cast_nullable_to_non_nullable
              as bool?,
      pkgName: freezed == pkgName
          ? _value.pkgName
          : pkgName // ignore: cast_nullable_to_non_nullable
              as String?,
      versionCode: freezed == versionCode
          ? _value.versionCode
          : versionCode // ignore: cast_nullable_to_non_nullable
              as int?,
      versionName: freezed == versionName
          ? _value.versionName
          : versionName // ignore: cast_nullable_to_non_nullable
              as String?,
    ) as $Val);
  }

  @override
  @pragma('vm:prefer-inline')
  $LanguageCopyWith<$Res>? get lang {
    if (_value.lang == null) {
      return null;
    }

    return $LanguageCopyWith<$Res>(_value.lang!, (value) {
      return _then(_value.copyWith(lang: value) as $Val);
    });
  }
}

/// @nodoc
abstract class _$$ExtensionImplCopyWith<$Res>
    implements $ExtensionCopyWith<$Res> {
  factory _$$ExtensionImplCopyWith(
          _$ExtensionImpl value, $Res Function(_$ExtensionImpl) then) =
      __$$ExtensionImplCopyWithImpl<$Res>;
  @override
  @useResult
  $Res call(
      {String? apkName,
      bool? hasUpdate,
      String? iconUrl,
      bool? installed,
      bool? isNsfw,
      @JsonKey(
          fromJson: LanguageJsonConverter.fromJson,
          toJson: LanguageJsonConverter.toJson)
      Language? lang,
      String? name,
      bool? obsolete,
      String? pkgName,
      int? versionCode,
      String? versionName});

  @override
  $LanguageCopyWith<$Res>? get lang;
}

/// @nodoc
class __$$ExtensionImplCopyWithImpl<$Res>
    extends _$ExtensionCopyWithImpl<$Res, _$ExtensionImpl>
    implements _$$ExtensionImplCopyWith<$Res> {
  __$$ExtensionImplCopyWithImpl(
      _$ExtensionImpl _value, $Res Function(_$ExtensionImpl) _then)
      : super(_value, _then);

  @pragma('vm:prefer-inline')
  @override
  $Res call({
    Object? apkName = freezed,
    Object? hasUpdate = freezed,
    Object? iconUrl = freezed,
    Object? installed = freezed,
    Object? isNsfw = freezed,
    Object? lang = freezed,
    Object? name = freezed,
    Object? obsolete = freezed,
    Object? pkgName = freezed,
    Object? versionCode = freezed,
    Object? versionName = freezed,
  }) {
    return _then(_$ExtensionImpl(
      apkName: freezed == apkName
          ? _value.apkName
          : apkName // ignore: cast_nullable_to_non_nullable
              as String?,
      hasUpdate: freezed == hasUpdate
          ? _value.hasUpdate
          : hasUpdate // ignore: cast_nullable_to_non_nullable
              as bool?,
      iconUrl: freezed == iconUrl
          ? _value.iconUrl
          : iconUrl // ignore: cast_nullable_to_non_nullable
              as String?,
      installed: freezed == installed
          ? _value.installed
          : installed // ignore: cast_nullable_to_non_nullable
              as bool?,
      isNsfw: freezed == isNsfw
          ? _value.isNsfw
          : isNsfw // ignore: cast_nullable_to_non_nullable
              as bool?,
      lang: freezed == lang
          ? _value.lang
          : lang // ignore: cast_nullable_to_non_nullable
              as Language?,
      name: freezed == name
          ? _value.name
          : name // ignore: cast_nullable_to_non_nullable
              as String?,
      obsolete: freezed == obsolete
          ? _value.obsolete
          : obsolete // ignore: cast_nullable_to_non_nullable
              as bool?,
      pkgName: freezed == pkgName
          ? _value.pkgName
          : pkgName // ignore: cast_nullable_to_non_nullable
              as String?,
      versionCode: freezed == versionCode
          ? _value.versionCode
          : versionCode // ignore: cast_nullable_to_non_nullable
              as int?,
      versionName: freezed == versionName
          ? _value.versionName
          : versionName // ignore: cast_nullable_to_non_nullable
              as String?,
    ));
  }
}

/// @nodoc
@JsonSerializable()
class _$ExtensionImpl implements _Extension {
  _$ExtensionImpl(
      {this.apkName,
      this.hasUpdate,
      this.iconUrl,
      this.installed,
      this.isNsfw,
      @JsonKey(
          fromJson: LanguageJsonConverter.fromJson,
          toJson: LanguageJsonConverter.toJson)
      this.lang,
      this.name,
      this.obsolete,
      this.pkgName,
      this.versionCode,
      this.versionName});

  factory _$ExtensionImpl.fromJson(Map<String, dynamic> json) =>
      _$$ExtensionImplFromJson(json);

  @override
  final String? apkName;
  @override
  final bool? hasUpdate;
  @override
  final String? iconUrl;
  @override
  final bool? installed;
  @override
  final bool? isNsfw;
  @override
  @JsonKey(
      fromJson: LanguageJsonConverter.fromJson,
      toJson: LanguageJsonConverter.toJson)
  final Language? lang;
  @override
  final String? name;
  @override
  final bool? obsolete;
  @override
  final String? pkgName;
  @override
  final int? versionCode;
  @override
  final String? versionName;

  @override
  String toString() {
    return 'Extension(apkName: $apkName, hasUpdate: $hasUpdate, iconUrl: $iconUrl, installed: $installed, isNsfw: $isNsfw, lang: $lang, name: $name, obsolete: $obsolete, pkgName: $pkgName, versionCode: $versionCode, versionName: $versionName)';
  }

  @override
  bool operator ==(Object other) {
    return identical(this, other) ||
        (other.runtimeType == runtimeType &&
            other is _$ExtensionImpl &&
            (identical(other.apkName, apkName) || other.apkName == apkName) &&
            (identical(other.hasUpdate, hasUpdate) ||
                other.hasUpdate == hasUpdate) &&
            (identical(other.iconUrl, iconUrl) || other.iconUrl == iconUrl) &&
            (identical(other.installed, installed) ||
                other.installed == installed) &&
            (identical(other.isNsfw, isNsfw) || other.isNsfw == isNsfw) &&
            (identical(other.lang, lang) || other.lang == lang) &&
            (identical(other.name, name) || other.name == name) &&
            (identical(other.obsolete, obsolete) ||
                other.obsolete == obsolete) &&
            (identical(other.pkgName, pkgName) || other.pkgName == pkgName) &&
            (identical(other.versionCode, versionCode) ||
                other.versionCode == versionCode) &&
            (identical(other.versionName, versionName) ||
                other.versionName == versionName));
  }

  @JsonKey(ignore: true)
  @override
  int get hashCode => Object.hash(
      runtimeType,
      apkName,
      hasUpdate,
      iconUrl,
      installed,
      isNsfw,
      lang,
      name,
      obsolete,
      pkgName,
      versionCode,
      versionName);

  @JsonKey(ignore: true)
  @override
  @pragma('vm:prefer-inline')
  _$$ExtensionImplCopyWith<_$ExtensionImpl> get copyWith =>
      __$$ExtensionImplCopyWithImpl<_$ExtensionImpl>(this, _$identity);

  @override
  Map<String, dynamic> toJson() {
    return _$$ExtensionImplToJson(
      this,
    );
  }
}

abstract class _Extension implements Extension {
  factory _Extension(
      {final String? apkName,
      final bool? hasUpdate,
      final String? iconUrl,
      final bool? installed,
      final bool? isNsfw,
      @JsonKey(
          fromJson: LanguageJsonConverter.fromJson,
          toJson: LanguageJsonConverter.toJson)
      final Language? lang,
      final String? name,
      final bool? obsolete,
      final String? pkgName,
      final int? versionCode,
      final String? versionName}) = _$ExtensionImpl;

  factory _Extension.fromJson(Map<String, dynamic> json) =
      _$ExtensionImpl.fromJson;

  @override
  String? get apkName;
  @override
  bool? get hasUpdate;
  @override
  String? get iconUrl;
  @override
  bool? get installed;
  @override
  bool? get isNsfw;
  @override
  @JsonKey(
      fromJson: LanguageJsonConverter.fromJson,
      toJson: LanguageJsonConverter.toJson)
  Language? get lang;
  @override
  String? get name;
  @override
  bool? get obsolete;
  @override
  String? get pkgName;
  @override
  int? get versionCode;
  @override
  String? get versionName;
  @override
  @JsonKey(ignore: true)
  _$$ExtensionImplCopyWith<_$ExtensionImpl> get copyWith =>
      throw _privateConstructorUsedError;
}
