// 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 'launch.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#adding-getters-and-methods-to-our-models',
);

Launch _$LaunchFromJson(Map<String, dynamic> json) {
  return _Launch.fromJson(json);
}

/// @nodoc
mixin _$Launch {
  User? get userConfig => throw _privateConstructorUsedError;
  AppConfig? get appConfig => throw _privateConstructorUsedError;
  Upgrade? get upgradeConfig => throw _privateConstructorUsedError;
  AdConfig? get adConfig => throw _privateConstructorUsedError;
  Groups? get groups => throw _privateConstructorUsedError;
  List<Ranks>? get ranks => throw _privateConstructorUsedError;
  dynamic get exData => throw _privateConstructorUsedError;
  List<dynamic>? get nodes => throw _privateConstructorUsedError;
  String? get tunnelConfig => throw _privateConstructorUsedError;
  int? get socksPort => throw _privateConstructorUsedError;

  /// Serializes this Launch to a JSON map.
  Map<String, dynamic> toJson() => throw _privateConstructorUsedError;

  /// Create a copy of Launch
  /// with the given fields replaced by the non-null parameter values.
  @JsonKey(includeFromJson: false, includeToJson: false)
  $LaunchCopyWith<Launch> get copyWith => throw _privateConstructorUsedError;
}

/// @nodoc
abstract class $LaunchCopyWith<$Res> {
  factory $LaunchCopyWith(Launch value, $Res Function(Launch) then) =
      _$LaunchCopyWithImpl<$Res, Launch>;
  @useResult
  $Res call({
    User? userConfig,
    AppConfig? appConfig,
    Upgrade? upgradeConfig,
    AdConfig? adConfig,
    Groups? groups,
    List<Ranks>? ranks,
    dynamic exData,
    List<dynamic>? nodes,
    String? tunnelConfig,
    int? socksPort,
  });

  $UserCopyWith<$Res>? get userConfig;
  $AppConfigCopyWith<$Res>? get appConfig;
  $UpgradeCopyWith<$Res>? get upgradeConfig;
  $AdConfigCopyWith<$Res>? get adConfig;
  $GroupsCopyWith<$Res>? get groups;
}

/// @nodoc
class _$LaunchCopyWithImpl<$Res, $Val extends Launch>
    implements $LaunchCopyWith<$Res> {
  _$LaunchCopyWithImpl(this._value, this._then);

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

  /// Create a copy of Launch
  /// with the given fields replaced by the non-null parameter values.
  @pragma('vm:prefer-inline')
  @override
  $Res call({
    Object? userConfig = freezed,
    Object? appConfig = freezed,
    Object? upgradeConfig = freezed,
    Object? adConfig = freezed,
    Object? groups = freezed,
    Object? ranks = freezed,
    Object? exData = freezed,
    Object? nodes = freezed,
    Object? tunnelConfig = freezed,
    Object? socksPort = freezed,
  }) {
    return _then(
      _value.copyWith(
            userConfig: freezed == userConfig
                ? _value.userConfig
                : userConfig // ignore: cast_nullable_to_non_nullable
                      as User?,
            appConfig: freezed == appConfig
                ? _value.appConfig
                : appConfig // ignore: cast_nullable_to_non_nullable
                      as AppConfig?,
            upgradeConfig: freezed == upgradeConfig
                ? _value.upgradeConfig
                : upgradeConfig // ignore: cast_nullable_to_non_nullable
                      as Upgrade?,
            adConfig: freezed == adConfig
                ? _value.adConfig
                : adConfig // ignore: cast_nullable_to_non_nullable
                      as AdConfig?,
            groups: freezed == groups
                ? _value.groups
                : groups // ignore: cast_nullable_to_non_nullable
                      as Groups?,
            ranks: freezed == ranks
                ? _value.ranks
                : ranks // ignore: cast_nullable_to_non_nullable
                      as List<Ranks>?,
            exData: freezed == exData
                ? _value.exData
                : exData // ignore: cast_nullable_to_non_nullable
                      as dynamic,
            nodes: freezed == nodes
                ? _value.nodes
                : nodes // ignore: cast_nullable_to_non_nullable
                      as List<dynamic>?,
            tunnelConfig: freezed == tunnelConfig
                ? _value.tunnelConfig
                : tunnelConfig // ignore: cast_nullable_to_non_nullable
                      as String?,
            socksPort: freezed == socksPort
                ? _value.socksPort
                : socksPort // ignore: cast_nullable_to_non_nullable
                      as int?,
          )
          as $Val,
    );
  }

  /// Create a copy of Launch
  /// with the given fields replaced by the non-null parameter values.
  @override
  @pragma('vm:prefer-inline')
  $UserCopyWith<$Res>? get userConfig {
    if (_value.userConfig == null) {
      return null;
    }

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

  /// Create a copy of Launch
  /// with the given fields replaced by the non-null parameter values.
  @override
  @pragma('vm:prefer-inline')
  $AppConfigCopyWith<$Res>? get appConfig {
    if (_value.appConfig == null) {
      return null;
    }

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

  /// Create a copy of Launch
  /// with the given fields replaced by the non-null parameter values.
  @override
  @pragma('vm:prefer-inline')
  $UpgradeCopyWith<$Res>? get upgradeConfig {
    if (_value.upgradeConfig == null) {
      return null;
    }

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

  /// Create a copy of Launch
  /// with the given fields replaced by the non-null parameter values.
  @override
  @pragma('vm:prefer-inline')
  $AdConfigCopyWith<$Res>? get adConfig {
    if (_value.adConfig == null) {
      return null;
    }

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

  /// Create a copy of Launch
  /// with the given fields replaced by the non-null parameter values.
  @override
  @pragma('vm:prefer-inline')
  $GroupsCopyWith<$Res>? get groups {
    if (_value.groups == null) {
      return null;
    }

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

/// @nodoc
abstract class _$$LaunchImplCopyWith<$Res> implements $LaunchCopyWith<$Res> {
  factory _$$LaunchImplCopyWith(
    _$LaunchImpl value,
    $Res Function(_$LaunchImpl) then,
  ) = __$$LaunchImplCopyWithImpl<$Res>;
  @override
  @useResult
  $Res call({
    User? userConfig,
    AppConfig? appConfig,
    Upgrade? upgradeConfig,
    AdConfig? adConfig,
    Groups? groups,
    List<Ranks>? ranks,
    dynamic exData,
    List<dynamic>? nodes,
    String? tunnelConfig,
    int? socksPort,
  });

  @override
  $UserCopyWith<$Res>? get userConfig;
  @override
  $AppConfigCopyWith<$Res>? get appConfig;
  @override
  $UpgradeCopyWith<$Res>? get upgradeConfig;
  @override
  $AdConfigCopyWith<$Res>? get adConfig;
  @override
  $GroupsCopyWith<$Res>? get groups;
}

/// @nodoc
class __$$LaunchImplCopyWithImpl<$Res>
    extends _$LaunchCopyWithImpl<$Res, _$LaunchImpl>
    implements _$$LaunchImplCopyWith<$Res> {
  __$$LaunchImplCopyWithImpl(
    _$LaunchImpl _value,
    $Res Function(_$LaunchImpl) _then,
  ) : super(_value, _then);

  /// Create a copy of Launch
  /// with the given fields replaced by the non-null parameter values.
  @pragma('vm:prefer-inline')
  @override
  $Res call({
    Object? userConfig = freezed,
    Object? appConfig = freezed,
    Object? upgradeConfig = freezed,
    Object? adConfig = freezed,
    Object? groups = freezed,
    Object? ranks = freezed,
    Object? exData = freezed,
    Object? nodes = freezed,
    Object? tunnelConfig = freezed,
    Object? socksPort = freezed,
  }) {
    return _then(
      _$LaunchImpl(
        userConfig: freezed == userConfig
            ? _value.userConfig
            : userConfig // ignore: cast_nullable_to_non_nullable
                  as User?,
        appConfig: freezed == appConfig
            ? _value.appConfig
            : appConfig // ignore: cast_nullable_to_non_nullable
                  as AppConfig?,
        upgradeConfig: freezed == upgradeConfig
            ? _value.upgradeConfig
            : upgradeConfig // ignore: cast_nullable_to_non_nullable
                  as Upgrade?,
        adConfig: freezed == adConfig
            ? _value.adConfig
            : adConfig // ignore: cast_nullable_to_non_nullable
                  as AdConfig?,
        groups: freezed == groups
            ? _value.groups
            : groups // ignore: cast_nullable_to_non_nullable
                  as Groups?,
        ranks: freezed == ranks
            ? _value._ranks
            : ranks // ignore: cast_nullable_to_non_nullable
                  as List<Ranks>?,
        exData: freezed == exData
            ? _value.exData
            : exData // ignore: cast_nullable_to_non_nullable
                  as dynamic,
        nodes: freezed == nodes
            ? _value._nodes
            : nodes // ignore: cast_nullable_to_non_nullable
                  as List<dynamic>?,
        tunnelConfig: freezed == tunnelConfig
            ? _value.tunnelConfig
            : tunnelConfig // ignore: cast_nullable_to_non_nullable
                  as String?,
        socksPort: freezed == socksPort
            ? _value.socksPort
            : socksPort // ignore: cast_nullable_to_non_nullable
                  as int?,
      ),
    );
  }
}

/// @nodoc
@JsonSerializable()
class _$LaunchImpl with DiagnosticableTreeMixin implements _Launch {
  const _$LaunchImpl({
    this.userConfig,
    this.appConfig,
    this.upgradeConfig,
    this.adConfig,
    this.groups,
    final List<Ranks>? ranks,
    this.exData,
    final List<dynamic>? nodes,
    this.tunnelConfig,
    this.socksPort,
  }) : _ranks = ranks,
       _nodes = nodes;

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

  @override
  final User? userConfig;
  @override
  final AppConfig? appConfig;
  @override
  final Upgrade? upgradeConfig;
  @override
  final AdConfig? adConfig;
  @override
  final Groups? groups;
  final List<Ranks>? _ranks;
  @override
  List<Ranks>? get ranks {
    final value = _ranks;
    if (value == null) return null;
    if (_ranks is EqualUnmodifiableListView) return _ranks;
    // ignore: implicit_dynamic_type
    return EqualUnmodifiableListView(value);
  }

  @override
  final dynamic exData;
  final List<dynamic>? _nodes;
  @override
  List<dynamic>? get nodes {
    final value = _nodes;
    if (value == null) return null;
    if (_nodes is EqualUnmodifiableListView) return _nodes;
    // ignore: implicit_dynamic_type
    return EqualUnmodifiableListView(value);
  }

  @override
  final String? tunnelConfig;
  @override
  final int? socksPort;

  @override
  String toString({DiagnosticLevel minLevel = DiagnosticLevel.info}) {
    return 'Launch(userConfig: $userConfig, appConfig: $appConfig, upgradeConfig: $upgradeConfig, adConfig: $adConfig, groups: $groups, ranks: $ranks, exData: $exData, nodes: $nodes, tunnelConfig: $tunnelConfig, socksPort: $socksPort)';
  }

  @override
  void debugFillProperties(DiagnosticPropertiesBuilder properties) {
    super.debugFillProperties(properties);
    properties
      ..add(DiagnosticsProperty('type', 'Launch'))
      ..add(DiagnosticsProperty('userConfig', userConfig))
      ..add(DiagnosticsProperty('appConfig', appConfig))
      ..add(DiagnosticsProperty('upgradeConfig', upgradeConfig))
      ..add(DiagnosticsProperty('adConfig', adConfig))
      ..add(DiagnosticsProperty('groups', groups))
      ..add(DiagnosticsProperty('ranks', ranks))
      ..add(DiagnosticsProperty('exData', exData))
      ..add(DiagnosticsProperty('nodes', nodes))
      ..add(DiagnosticsProperty('tunnelConfig', tunnelConfig))
      ..add(DiagnosticsProperty('socksPort', socksPort));
  }

  @override
  bool operator ==(Object other) {
    return identical(this, other) ||
        (other.runtimeType == runtimeType &&
            other is _$LaunchImpl &&
            (identical(other.userConfig, userConfig) ||
                other.userConfig == userConfig) &&
            (identical(other.appConfig, appConfig) ||
                other.appConfig == appConfig) &&
            (identical(other.upgradeConfig, upgradeConfig) ||
                other.upgradeConfig == upgradeConfig) &&
            (identical(other.adConfig, adConfig) ||
                other.adConfig == adConfig) &&
            (identical(other.groups, groups) || other.groups == groups) &&
            const DeepCollectionEquality().equals(other._ranks, _ranks) &&
            const DeepCollectionEquality().equals(other.exData, exData) &&
            const DeepCollectionEquality().equals(other._nodes, _nodes) &&
            (identical(other.tunnelConfig, tunnelConfig) ||
                other.tunnelConfig == tunnelConfig) &&
            (identical(other.socksPort, socksPort) ||
                other.socksPort == socksPort));
  }

  @JsonKey(includeFromJson: false, includeToJson: false)
  @override
  int get hashCode => Object.hash(
    runtimeType,
    userConfig,
    appConfig,
    upgradeConfig,
    adConfig,
    groups,
    const DeepCollectionEquality().hash(_ranks),
    const DeepCollectionEquality().hash(exData),
    const DeepCollectionEquality().hash(_nodes),
    tunnelConfig,
    socksPort,
  );

  /// Create a copy of Launch
  /// with the given fields replaced by the non-null parameter values.
  @JsonKey(includeFromJson: false, includeToJson: false)
  @override
  @pragma('vm:prefer-inline')
  _$$LaunchImplCopyWith<_$LaunchImpl> get copyWith =>
      __$$LaunchImplCopyWithImpl<_$LaunchImpl>(this, _$identity);

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

abstract class _Launch implements Launch {
  const factory _Launch({
    final User? userConfig,
    final AppConfig? appConfig,
    final Upgrade? upgradeConfig,
    final AdConfig? adConfig,
    final Groups? groups,
    final List<Ranks>? ranks,
    final dynamic exData,
    final List<dynamic>? nodes,
    final String? tunnelConfig,
    final int? socksPort,
  }) = _$LaunchImpl;

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

  @override
  User? get userConfig;
  @override
  AppConfig? get appConfig;
  @override
  Upgrade? get upgradeConfig;
  @override
  AdConfig? get adConfig;
  @override
  Groups? get groups;
  @override
  List<Ranks>? get ranks;
  @override
  dynamic get exData;
  @override
  List<dynamic>? get nodes;
  @override
  String? get tunnelConfig;
  @override
  int? get socksPort;

  /// Create a copy of Launch
  /// with the given fields replaced by the non-null parameter values.
  @override
  @JsonKey(includeFromJson: false, includeToJson: false)
  _$$LaunchImplCopyWith<_$LaunchImpl> get copyWith =>
      throw _privateConstructorUsedError;
}
