// 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 'sync_setting_bloc.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',
);

/// @nodoc
mixin _$SyncSettingEvent {
  @optionalTypeArgs
  TResult when<TResult extends Object?>({
    required TResult Function() loadStats,
    required TResult Function() syncAllData,
    required TResult Function() clearAllData,
    required TResult Function() syncProducts,
    required TResult Function() syncCategories,
    required TResult Function() clearCategories,
    required TResult Function() clearProducts,
  }) => throw _privateConstructorUsedError;
  @optionalTypeArgs
  TResult? whenOrNull<TResult extends Object?>({
    TResult? Function()? loadStats,
    TResult? Function()? syncAllData,
    TResult? Function()? clearAllData,
    TResult? Function()? syncProducts,
    TResult? Function()? syncCategories,
    TResult? Function()? clearCategories,
    TResult? Function()? clearProducts,
  }) => throw _privateConstructorUsedError;
  @optionalTypeArgs
  TResult maybeWhen<TResult extends Object?>({
    TResult Function()? loadStats,
    TResult Function()? syncAllData,
    TResult Function()? clearAllData,
    TResult Function()? syncProducts,
    TResult Function()? syncCategories,
    TResult Function()? clearCategories,
    TResult Function()? clearProducts,
    required TResult orElse(),
  }) => throw _privateConstructorUsedError;
  @optionalTypeArgs
  TResult map<TResult extends Object?>({
    required TResult Function(_LoadStats value) loadStats,
    required TResult Function(_SyncAllData value) syncAllData,
    required TResult Function(_ClearAllData value) clearAllData,
    required TResult Function(_SyncProducts value) syncProducts,
    required TResult Function(_SyncCategories value) syncCategories,
    required TResult Function(_ClearCategories value) clearCategories,
    required TResult Function(_ClearProducts value) clearProducts,
  }) => throw _privateConstructorUsedError;
  @optionalTypeArgs
  TResult? mapOrNull<TResult extends Object?>({
    TResult? Function(_LoadStats value)? loadStats,
    TResult? Function(_SyncAllData value)? syncAllData,
    TResult? Function(_ClearAllData value)? clearAllData,
    TResult? Function(_SyncProducts value)? syncProducts,
    TResult? Function(_SyncCategories value)? syncCategories,
    TResult? Function(_ClearCategories value)? clearCategories,
    TResult? Function(_ClearProducts value)? clearProducts,
  }) => throw _privateConstructorUsedError;
  @optionalTypeArgs
  TResult maybeMap<TResult extends Object?>({
    TResult Function(_LoadStats value)? loadStats,
    TResult Function(_SyncAllData value)? syncAllData,
    TResult Function(_ClearAllData value)? clearAllData,
    TResult Function(_SyncProducts value)? syncProducts,
    TResult Function(_SyncCategories value)? syncCategories,
    TResult Function(_ClearCategories value)? clearCategories,
    TResult Function(_ClearProducts value)? clearProducts,
    required TResult orElse(),
  }) => throw _privateConstructorUsedError;
}

/// @nodoc
abstract class $SyncSettingEventCopyWith<$Res> {
  factory $SyncSettingEventCopyWith(
    SyncSettingEvent value,
    $Res Function(SyncSettingEvent) then,
  ) = _$SyncSettingEventCopyWithImpl<$Res, SyncSettingEvent>;
}

/// @nodoc
class _$SyncSettingEventCopyWithImpl<$Res, $Val extends SyncSettingEvent>
    implements $SyncSettingEventCopyWith<$Res> {
  _$SyncSettingEventCopyWithImpl(this._value, this._then);

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

  /// Create a copy of SyncSettingEvent
  /// with the given fields replaced by the non-null parameter values.
}

/// @nodoc
abstract class _$$LoadStatsImplCopyWith<$Res> {
  factory _$$LoadStatsImplCopyWith(
    _$LoadStatsImpl value,
    $Res Function(_$LoadStatsImpl) then,
  ) = __$$LoadStatsImplCopyWithImpl<$Res>;
}

/// @nodoc
class __$$LoadStatsImplCopyWithImpl<$Res>
    extends _$SyncSettingEventCopyWithImpl<$Res, _$LoadStatsImpl>
    implements _$$LoadStatsImplCopyWith<$Res> {
  __$$LoadStatsImplCopyWithImpl(
    _$LoadStatsImpl _value,
    $Res Function(_$LoadStatsImpl) _then,
  ) : super(_value, _then);

  /// Create a copy of SyncSettingEvent
  /// with the given fields replaced by the non-null parameter values.
}

/// @nodoc

class _$LoadStatsImpl implements _LoadStats {
  const _$LoadStatsImpl();

  @override
  String toString() {
    return 'SyncSettingEvent.loadStats()';
  }

  @override
  bool operator ==(Object other) {
    return identical(this, other) ||
        (other.runtimeType == runtimeType && other is _$LoadStatsImpl);
  }

  @override
  int get hashCode => runtimeType.hashCode;

  @override
  @optionalTypeArgs
  TResult when<TResult extends Object?>({
    required TResult Function() loadStats,
    required TResult Function() syncAllData,
    required TResult Function() clearAllData,
    required TResult Function() syncProducts,
    required TResult Function() syncCategories,
    required TResult Function() clearCategories,
    required TResult Function() clearProducts,
  }) {
    return loadStats();
  }

  @override
  @optionalTypeArgs
  TResult? whenOrNull<TResult extends Object?>({
    TResult? Function()? loadStats,
    TResult? Function()? syncAllData,
    TResult? Function()? clearAllData,
    TResult? Function()? syncProducts,
    TResult? Function()? syncCategories,
    TResult? Function()? clearCategories,
    TResult? Function()? clearProducts,
  }) {
    return loadStats?.call();
  }

  @override
  @optionalTypeArgs
  TResult maybeWhen<TResult extends Object?>({
    TResult Function()? loadStats,
    TResult Function()? syncAllData,
    TResult Function()? clearAllData,
    TResult Function()? syncProducts,
    TResult Function()? syncCategories,
    TResult Function()? clearCategories,
    TResult Function()? clearProducts,
    required TResult orElse(),
  }) {
    if (loadStats != null) {
      return loadStats();
    }
    return orElse();
  }

  @override
  @optionalTypeArgs
  TResult map<TResult extends Object?>({
    required TResult Function(_LoadStats value) loadStats,
    required TResult Function(_SyncAllData value) syncAllData,
    required TResult Function(_ClearAllData value) clearAllData,
    required TResult Function(_SyncProducts value) syncProducts,
    required TResult Function(_SyncCategories value) syncCategories,
    required TResult Function(_ClearCategories value) clearCategories,
    required TResult Function(_ClearProducts value) clearProducts,
  }) {
    return loadStats(this);
  }

  @override
  @optionalTypeArgs
  TResult? mapOrNull<TResult extends Object?>({
    TResult? Function(_LoadStats value)? loadStats,
    TResult? Function(_SyncAllData value)? syncAllData,
    TResult? Function(_ClearAllData value)? clearAllData,
    TResult? Function(_SyncProducts value)? syncProducts,
    TResult? Function(_SyncCategories value)? syncCategories,
    TResult? Function(_ClearCategories value)? clearCategories,
    TResult? Function(_ClearProducts value)? clearProducts,
  }) {
    return loadStats?.call(this);
  }

  @override
  @optionalTypeArgs
  TResult maybeMap<TResult extends Object?>({
    TResult Function(_LoadStats value)? loadStats,
    TResult Function(_SyncAllData value)? syncAllData,
    TResult Function(_ClearAllData value)? clearAllData,
    TResult Function(_SyncProducts value)? syncProducts,
    TResult Function(_SyncCategories value)? syncCategories,
    TResult Function(_ClearCategories value)? clearCategories,
    TResult Function(_ClearProducts value)? clearProducts,
    required TResult orElse(),
  }) {
    if (loadStats != null) {
      return loadStats(this);
    }
    return orElse();
  }
}

abstract class _LoadStats implements SyncSettingEvent {
  const factory _LoadStats() = _$LoadStatsImpl;
}

/// @nodoc
abstract class _$$SyncAllDataImplCopyWith<$Res> {
  factory _$$SyncAllDataImplCopyWith(
    _$SyncAllDataImpl value,
    $Res Function(_$SyncAllDataImpl) then,
  ) = __$$SyncAllDataImplCopyWithImpl<$Res>;
}

/// @nodoc
class __$$SyncAllDataImplCopyWithImpl<$Res>
    extends _$SyncSettingEventCopyWithImpl<$Res, _$SyncAllDataImpl>
    implements _$$SyncAllDataImplCopyWith<$Res> {
  __$$SyncAllDataImplCopyWithImpl(
    _$SyncAllDataImpl _value,
    $Res Function(_$SyncAllDataImpl) _then,
  ) : super(_value, _then);

  /// Create a copy of SyncSettingEvent
  /// with the given fields replaced by the non-null parameter values.
}

/// @nodoc

class _$SyncAllDataImpl implements _SyncAllData {
  const _$SyncAllDataImpl();

  @override
  String toString() {
    return 'SyncSettingEvent.syncAllData()';
  }

  @override
  bool operator ==(Object other) {
    return identical(this, other) ||
        (other.runtimeType == runtimeType && other is _$SyncAllDataImpl);
  }

  @override
  int get hashCode => runtimeType.hashCode;

  @override
  @optionalTypeArgs
  TResult when<TResult extends Object?>({
    required TResult Function() loadStats,
    required TResult Function() syncAllData,
    required TResult Function() clearAllData,
    required TResult Function() syncProducts,
    required TResult Function() syncCategories,
    required TResult Function() clearCategories,
    required TResult Function() clearProducts,
  }) {
    return syncAllData();
  }

  @override
  @optionalTypeArgs
  TResult? whenOrNull<TResult extends Object?>({
    TResult? Function()? loadStats,
    TResult? Function()? syncAllData,
    TResult? Function()? clearAllData,
    TResult? Function()? syncProducts,
    TResult? Function()? syncCategories,
    TResult? Function()? clearCategories,
    TResult? Function()? clearProducts,
  }) {
    return syncAllData?.call();
  }

  @override
  @optionalTypeArgs
  TResult maybeWhen<TResult extends Object?>({
    TResult Function()? loadStats,
    TResult Function()? syncAllData,
    TResult Function()? clearAllData,
    TResult Function()? syncProducts,
    TResult Function()? syncCategories,
    TResult Function()? clearCategories,
    TResult Function()? clearProducts,
    required TResult orElse(),
  }) {
    if (syncAllData != null) {
      return syncAllData();
    }
    return orElse();
  }

  @override
  @optionalTypeArgs
  TResult map<TResult extends Object?>({
    required TResult Function(_LoadStats value) loadStats,
    required TResult Function(_SyncAllData value) syncAllData,
    required TResult Function(_ClearAllData value) clearAllData,
    required TResult Function(_SyncProducts value) syncProducts,
    required TResult Function(_SyncCategories value) syncCategories,
    required TResult Function(_ClearCategories value) clearCategories,
    required TResult Function(_ClearProducts value) clearProducts,
  }) {
    return syncAllData(this);
  }

  @override
  @optionalTypeArgs
  TResult? mapOrNull<TResult extends Object?>({
    TResult? Function(_LoadStats value)? loadStats,
    TResult? Function(_SyncAllData value)? syncAllData,
    TResult? Function(_ClearAllData value)? clearAllData,
    TResult? Function(_SyncProducts value)? syncProducts,
    TResult? Function(_SyncCategories value)? syncCategories,
    TResult? Function(_ClearCategories value)? clearCategories,
    TResult? Function(_ClearProducts value)? clearProducts,
  }) {
    return syncAllData?.call(this);
  }

  @override
  @optionalTypeArgs
  TResult maybeMap<TResult extends Object?>({
    TResult Function(_LoadStats value)? loadStats,
    TResult Function(_SyncAllData value)? syncAllData,
    TResult Function(_ClearAllData value)? clearAllData,
    TResult Function(_SyncProducts value)? syncProducts,
    TResult Function(_SyncCategories value)? syncCategories,
    TResult Function(_ClearCategories value)? clearCategories,
    TResult Function(_ClearProducts value)? clearProducts,
    required TResult orElse(),
  }) {
    if (syncAllData != null) {
      return syncAllData(this);
    }
    return orElse();
  }
}

abstract class _SyncAllData implements SyncSettingEvent {
  const factory _SyncAllData() = _$SyncAllDataImpl;
}

/// @nodoc
abstract class _$$ClearAllDataImplCopyWith<$Res> {
  factory _$$ClearAllDataImplCopyWith(
    _$ClearAllDataImpl value,
    $Res Function(_$ClearAllDataImpl) then,
  ) = __$$ClearAllDataImplCopyWithImpl<$Res>;
}

/// @nodoc
class __$$ClearAllDataImplCopyWithImpl<$Res>
    extends _$SyncSettingEventCopyWithImpl<$Res, _$ClearAllDataImpl>
    implements _$$ClearAllDataImplCopyWith<$Res> {
  __$$ClearAllDataImplCopyWithImpl(
    _$ClearAllDataImpl _value,
    $Res Function(_$ClearAllDataImpl) _then,
  ) : super(_value, _then);

  /// Create a copy of SyncSettingEvent
  /// with the given fields replaced by the non-null parameter values.
}

/// @nodoc

class _$ClearAllDataImpl implements _ClearAllData {
  const _$ClearAllDataImpl();

  @override
  String toString() {
    return 'SyncSettingEvent.clearAllData()';
  }

  @override
  bool operator ==(Object other) {
    return identical(this, other) ||
        (other.runtimeType == runtimeType && other is _$ClearAllDataImpl);
  }

  @override
  int get hashCode => runtimeType.hashCode;

  @override
  @optionalTypeArgs
  TResult when<TResult extends Object?>({
    required TResult Function() loadStats,
    required TResult Function() syncAllData,
    required TResult Function() clearAllData,
    required TResult Function() syncProducts,
    required TResult Function() syncCategories,
    required TResult Function() clearCategories,
    required TResult Function() clearProducts,
  }) {
    return clearAllData();
  }

  @override
  @optionalTypeArgs
  TResult? whenOrNull<TResult extends Object?>({
    TResult? Function()? loadStats,
    TResult? Function()? syncAllData,
    TResult? Function()? clearAllData,
    TResult? Function()? syncProducts,
    TResult? Function()? syncCategories,
    TResult? Function()? clearCategories,
    TResult? Function()? clearProducts,
  }) {
    return clearAllData?.call();
  }

  @override
  @optionalTypeArgs
  TResult maybeWhen<TResult extends Object?>({
    TResult Function()? loadStats,
    TResult Function()? syncAllData,
    TResult Function()? clearAllData,
    TResult Function()? syncProducts,
    TResult Function()? syncCategories,
    TResult Function()? clearCategories,
    TResult Function()? clearProducts,
    required TResult orElse(),
  }) {
    if (clearAllData != null) {
      return clearAllData();
    }
    return orElse();
  }

  @override
  @optionalTypeArgs
  TResult map<TResult extends Object?>({
    required TResult Function(_LoadStats value) loadStats,
    required TResult Function(_SyncAllData value) syncAllData,
    required TResult Function(_ClearAllData value) clearAllData,
    required TResult Function(_SyncProducts value) syncProducts,
    required TResult Function(_SyncCategories value) syncCategories,
    required TResult Function(_ClearCategories value) clearCategories,
    required TResult Function(_ClearProducts value) clearProducts,
  }) {
    return clearAllData(this);
  }

  @override
  @optionalTypeArgs
  TResult? mapOrNull<TResult extends Object?>({
    TResult? Function(_LoadStats value)? loadStats,
    TResult? Function(_SyncAllData value)? syncAllData,
    TResult? Function(_ClearAllData value)? clearAllData,
    TResult? Function(_SyncProducts value)? syncProducts,
    TResult? Function(_SyncCategories value)? syncCategories,
    TResult? Function(_ClearCategories value)? clearCategories,
    TResult? Function(_ClearProducts value)? clearProducts,
  }) {
    return clearAllData?.call(this);
  }

  @override
  @optionalTypeArgs
  TResult maybeMap<TResult extends Object?>({
    TResult Function(_LoadStats value)? loadStats,
    TResult Function(_SyncAllData value)? syncAllData,
    TResult Function(_ClearAllData value)? clearAllData,
    TResult Function(_SyncProducts value)? syncProducts,
    TResult Function(_SyncCategories value)? syncCategories,
    TResult Function(_ClearCategories value)? clearCategories,
    TResult Function(_ClearProducts value)? clearProducts,
    required TResult orElse(),
  }) {
    if (clearAllData != null) {
      return clearAllData(this);
    }
    return orElse();
  }
}

abstract class _ClearAllData implements SyncSettingEvent {
  const factory _ClearAllData() = _$ClearAllDataImpl;
}

/// @nodoc
abstract class _$$SyncProductsImplCopyWith<$Res> {
  factory _$$SyncProductsImplCopyWith(
    _$SyncProductsImpl value,
    $Res Function(_$SyncProductsImpl) then,
  ) = __$$SyncProductsImplCopyWithImpl<$Res>;
}

/// @nodoc
class __$$SyncProductsImplCopyWithImpl<$Res>
    extends _$SyncSettingEventCopyWithImpl<$Res, _$SyncProductsImpl>
    implements _$$SyncProductsImplCopyWith<$Res> {
  __$$SyncProductsImplCopyWithImpl(
    _$SyncProductsImpl _value,
    $Res Function(_$SyncProductsImpl) _then,
  ) : super(_value, _then);

  /// Create a copy of SyncSettingEvent
  /// with the given fields replaced by the non-null parameter values.
}

/// @nodoc

class _$SyncProductsImpl implements _SyncProducts {
  const _$SyncProductsImpl();

  @override
  String toString() {
    return 'SyncSettingEvent.syncProducts()';
  }

  @override
  bool operator ==(Object other) {
    return identical(this, other) ||
        (other.runtimeType == runtimeType && other is _$SyncProductsImpl);
  }

  @override
  int get hashCode => runtimeType.hashCode;

  @override
  @optionalTypeArgs
  TResult when<TResult extends Object?>({
    required TResult Function() loadStats,
    required TResult Function() syncAllData,
    required TResult Function() clearAllData,
    required TResult Function() syncProducts,
    required TResult Function() syncCategories,
    required TResult Function() clearCategories,
    required TResult Function() clearProducts,
  }) {
    return syncProducts();
  }

  @override
  @optionalTypeArgs
  TResult? whenOrNull<TResult extends Object?>({
    TResult? Function()? loadStats,
    TResult? Function()? syncAllData,
    TResult? Function()? clearAllData,
    TResult? Function()? syncProducts,
    TResult? Function()? syncCategories,
    TResult? Function()? clearCategories,
    TResult? Function()? clearProducts,
  }) {
    return syncProducts?.call();
  }

  @override
  @optionalTypeArgs
  TResult maybeWhen<TResult extends Object?>({
    TResult Function()? loadStats,
    TResult Function()? syncAllData,
    TResult Function()? clearAllData,
    TResult Function()? syncProducts,
    TResult Function()? syncCategories,
    TResult Function()? clearCategories,
    TResult Function()? clearProducts,
    required TResult orElse(),
  }) {
    if (syncProducts != null) {
      return syncProducts();
    }
    return orElse();
  }

  @override
  @optionalTypeArgs
  TResult map<TResult extends Object?>({
    required TResult Function(_LoadStats value) loadStats,
    required TResult Function(_SyncAllData value) syncAllData,
    required TResult Function(_ClearAllData value) clearAllData,
    required TResult Function(_SyncProducts value) syncProducts,
    required TResult Function(_SyncCategories value) syncCategories,
    required TResult Function(_ClearCategories value) clearCategories,
    required TResult Function(_ClearProducts value) clearProducts,
  }) {
    return syncProducts(this);
  }

  @override
  @optionalTypeArgs
  TResult? mapOrNull<TResult extends Object?>({
    TResult? Function(_LoadStats value)? loadStats,
    TResult? Function(_SyncAllData value)? syncAllData,
    TResult? Function(_ClearAllData value)? clearAllData,
    TResult? Function(_SyncProducts value)? syncProducts,
    TResult? Function(_SyncCategories value)? syncCategories,
    TResult? Function(_ClearCategories value)? clearCategories,
    TResult? Function(_ClearProducts value)? clearProducts,
  }) {
    return syncProducts?.call(this);
  }

  @override
  @optionalTypeArgs
  TResult maybeMap<TResult extends Object?>({
    TResult Function(_LoadStats value)? loadStats,
    TResult Function(_SyncAllData value)? syncAllData,
    TResult Function(_ClearAllData value)? clearAllData,
    TResult Function(_SyncProducts value)? syncProducts,
    TResult Function(_SyncCategories value)? syncCategories,
    TResult Function(_ClearCategories value)? clearCategories,
    TResult Function(_ClearProducts value)? clearProducts,
    required TResult orElse(),
  }) {
    if (syncProducts != null) {
      return syncProducts(this);
    }
    return orElse();
  }
}

abstract class _SyncProducts implements SyncSettingEvent {
  const factory _SyncProducts() = _$SyncProductsImpl;
}

/// @nodoc
abstract class _$$SyncCategoriesImplCopyWith<$Res> {
  factory _$$SyncCategoriesImplCopyWith(
    _$SyncCategoriesImpl value,
    $Res Function(_$SyncCategoriesImpl) then,
  ) = __$$SyncCategoriesImplCopyWithImpl<$Res>;
}

/// @nodoc
class __$$SyncCategoriesImplCopyWithImpl<$Res>
    extends _$SyncSettingEventCopyWithImpl<$Res, _$SyncCategoriesImpl>
    implements _$$SyncCategoriesImplCopyWith<$Res> {
  __$$SyncCategoriesImplCopyWithImpl(
    _$SyncCategoriesImpl _value,
    $Res Function(_$SyncCategoriesImpl) _then,
  ) : super(_value, _then);

  /// Create a copy of SyncSettingEvent
  /// with the given fields replaced by the non-null parameter values.
}

/// @nodoc

class _$SyncCategoriesImpl implements _SyncCategories {
  const _$SyncCategoriesImpl();

  @override
  String toString() {
    return 'SyncSettingEvent.syncCategories()';
  }

  @override
  bool operator ==(Object other) {
    return identical(this, other) ||
        (other.runtimeType == runtimeType && other is _$SyncCategoriesImpl);
  }

  @override
  int get hashCode => runtimeType.hashCode;

  @override
  @optionalTypeArgs
  TResult when<TResult extends Object?>({
    required TResult Function() loadStats,
    required TResult Function() syncAllData,
    required TResult Function() clearAllData,
    required TResult Function() syncProducts,
    required TResult Function() syncCategories,
    required TResult Function() clearCategories,
    required TResult Function() clearProducts,
  }) {
    return syncCategories();
  }

  @override
  @optionalTypeArgs
  TResult? whenOrNull<TResult extends Object?>({
    TResult? Function()? loadStats,
    TResult? Function()? syncAllData,
    TResult? Function()? clearAllData,
    TResult? Function()? syncProducts,
    TResult? Function()? syncCategories,
    TResult? Function()? clearCategories,
    TResult? Function()? clearProducts,
  }) {
    return syncCategories?.call();
  }

  @override
  @optionalTypeArgs
  TResult maybeWhen<TResult extends Object?>({
    TResult Function()? loadStats,
    TResult Function()? syncAllData,
    TResult Function()? clearAllData,
    TResult Function()? syncProducts,
    TResult Function()? syncCategories,
    TResult Function()? clearCategories,
    TResult Function()? clearProducts,
    required TResult orElse(),
  }) {
    if (syncCategories != null) {
      return syncCategories();
    }
    return orElse();
  }

  @override
  @optionalTypeArgs
  TResult map<TResult extends Object?>({
    required TResult Function(_LoadStats value) loadStats,
    required TResult Function(_SyncAllData value) syncAllData,
    required TResult Function(_ClearAllData value) clearAllData,
    required TResult Function(_SyncProducts value) syncProducts,
    required TResult Function(_SyncCategories value) syncCategories,
    required TResult Function(_ClearCategories value) clearCategories,
    required TResult Function(_ClearProducts value) clearProducts,
  }) {
    return syncCategories(this);
  }

  @override
  @optionalTypeArgs
  TResult? mapOrNull<TResult extends Object?>({
    TResult? Function(_LoadStats value)? loadStats,
    TResult? Function(_SyncAllData value)? syncAllData,
    TResult? Function(_ClearAllData value)? clearAllData,
    TResult? Function(_SyncProducts value)? syncProducts,
    TResult? Function(_SyncCategories value)? syncCategories,
    TResult? Function(_ClearCategories value)? clearCategories,
    TResult? Function(_ClearProducts value)? clearProducts,
  }) {
    return syncCategories?.call(this);
  }

  @override
  @optionalTypeArgs
  TResult maybeMap<TResult extends Object?>({
    TResult Function(_LoadStats value)? loadStats,
    TResult Function(_SyncAllData value)? syncAllData,
    TResult Function(_ClearAllData value)? clearAllData,
    TResult Function(_SyncProducts value)? syncProducts,
    TResult Function(_SyncCategories value)? syncCategories,
    TResult Function(_ClearCategories value)? clearCategories,
    TResult Function(_ClearProducts value)? clearProducts,
    required TResult orElse(),
  }) {
    if (syncCategories != null) {
      return syncCategories(this);
    }
    return orElse();
  }
}

abstract class _SyncCategories implements SyncSettingEvent {
  const factory _SyncCategories() = _$SyncCategoriesImpl;
}

/// @nodoc
abstract class _$$ClearCategoriesImplCopyWith<$Res> {
  factory _$$ClearCategoriesImplCopyWith(
    _$ClearCategoriesImpl value,
    $Res Function(_$ClearCategoriesImpl) then,
  ) = __$$ClearCategoriesImplCopyWithImpl<$Res>;
}

/// @nodoc
class __$$ClearCategoriesImplCopyWithImpl<$Res>
    extends _$SyncSettingEventCopyWithImpl<$Res, _$ClearCategoriesImpl>
    implements _$$ClearCategoriesImplCopyWith<$Res> {
  __$$ClearCategoriesImplCopyWithImpl(
    _$ClearCategoriesImpl _value,
    $Res Function(_$ClearCategoriesImpl) _then,
  ) : super(_value, _then);

  /// Create a copy of SyncSettingEvent
  /// with the given fields replaced by the non-null parameter values.
}

/// @nodoc

class _$ClearCategoriesImpl implements _ClearCategories {
  const _$ClearCategoriesImpl();

  @override
  String toString() {
    return 'SyncSettingEvent.clearCategories()';
  }

  @override
  bool operator ==(Object other) {
    return identical(this, other) ||
        (other.runtimeType == runtimeType && other is _$ClearCategoriesImpl);
  }

  @override
  int get hashCode => runtimeType.hashCode;

  @override
  @optionalTypeArgs
  TResult when<TResult extends Object?>({
    required TResult Function() loadStats,
    required TResult Function() syncAllData,
    required TResult Function() clearAllData,
    required TResult Function() syncProducts,
    required TResult Function() syncCategories,
    required TResult Function() clearCategories,
    required TResult Function() clearProducts,
  }) {
    return clearCategories();
  }

  @override
  @optionalTypeArgs
  TResult? whenOrNull<TResult extends Object?>({
    TResult? Function()? loadStats,
    TResult? Function()? syncAllData,
    TResult? Function()? clearAllData,
    TResult? Function()? syncProducts,
    TResult? Function()? syncCategories,
    TResult? Function()? clearCategories,
    TResult? Function()? clearProducts,
  }) {
    return clearCategories?.call();
  }

  @override
  @optionalTypeArgs
  TResult maybeWhen<TResult extends Object?>({
    TResult Function()? loadStats,
    TResult Function()? syncAllData,
    TResult Function()? clearAllData,
    TResult Function()? syncProducts,
    TResult Function()? syncCategories,
    TResult Function()? clearCategories,
    TResult Function()? clearProducts,
    required TResult orElse(),
  }) {
    if (clearCategories != null) {
      return clearCategories();
    }
    return orElse();
  }

  @override
  @optionalTypeArgs
  TResult map<TResult extends Object?>({
    required TResult Function(_LoadStats value) loadStats,
    required TResult Function(_SyncAllData value) syncAllData,
    required TResult Function(_ClearAllData value) clearAllData,
    required TResult Function(_SyncProducts value) syncProducts,
    required TResult Function(_SyncCategories value) syncCategories,
    required TResult Function(_ClearCategories value) clearCategories,
    required TResult Function(_ClearProducts value) clearProducts,
  }) {
    return clearCategories(this);
  }

  @override
  @optionalTypeArgs
  TResult? mapOrNull<TResult extends Object?>({
    TResult? Function(_LoadStats value)? loadStats,
    TResult? Function(_SyncAllData value)? syncAllData,
    TResult? Function(_ClearAllData value)? clearAllData,
    TResult? Function(_SyncProducts value)? syncProducts,
    TResult? Function(_SyncCategories value)? syncCategories,
    TResult? Function(_ClearCategories value)? clearCategories,
    TResult? Function(_ClearProducts value)? clearProducts,
  }) {
    return clearCategories?.call(this);
  }

  @override
  @optionalTypeArgs
  TResult maybeMap<TResult extends Object?>({
    TResult Function(_LoadStats value)? loadStats,
    TResult Function(_SyncAllData value)? syncAllData,
    TResult Function(_ClearAllData value)? clearAllData,
    TResult Function(_SyncProducts value)? syncProducts,
    TResult Function(_SyncCategories value)? syncCategories,
    TResult Function(_ClearCategories value)? clearCategories,
    TResult Function(_ClearProducts value)? clearProducts,
    required TResult orElse(),
  }) {
    if (clearCategories != null) {
      return clearCategories(this);
    }
    return orElse();
  }
}

abstract class _ClearCategories implements SyncSettingEvent {
  const factory _ClearCategories() = _$ClearCategoriesImpl;
}

/// @nodoc
abstract class _$$ClearProductsImplCopyWith<$Res> {
  factory _$$ClearProductsImplCopyWith(
    _$ClearProductsImpl value,
    $Res Function(_$ClearProductsImpl) then,
  ) = __$$ClearProductsImplCopyWithImpl<$Res>;
}

/// @nodoc
class __$$ClearProductsImplCopyWithImpl<$Res>
    extends _$SyncSettingEventCopyWithImpl<$Res, _$ClearProductsImpl>
    implements _$$ClearProductsImplCopyWith<$Res> {
  __$$ClearProductsImplCopyWithImpl(
    _$ClearProductsImpl _value,
    $Res Function(_$ClearProductsImpl) _then,
  ) : super(_value, _then);

  /// Create a copy of SyncSettingEvent
  /// with the given fields replaced by the non-null parameter values.
}

/// @nodoc

class _$ClearProductsImpl implements _ClearProducts {
  const _$ClearProductsImpl();

  @override
  String toString() {
    return 'SyncSettingEvent.clearProducts()';
  }

  @override
  bool operator ==(Object other) {
    return identical(this, other) ||
        (other.runtimeType == runtimeType && other is _$ClearProductsImpl);
  }

  @override
  int get hashCode => runtimeType.hashCode;

  @override
  @optionalTypeArgs
  TResult when<TResult extends Object?>({
    required TResult Function() loadStats,
    required TResult Function() syncAllData,
    required TResult Function() clearAllData,
    required TResult Function() syncProducts,
    required TResult Function() syncCategories,
    required TResult Function() clearCategories,
    required TResult Function() clearProducts,
  }) {
    return clearProducts();
  }

  @override
  @optionalTypeArgs
  TResult? whenOrNull<TResult extends Object?>({
    TResult? Function()? loadStats,
    TResult? Function()? syncAllData,
    TResult? Function()? clearAllData,
    TResult? Function()? syncProducts,
    TResult? Function()? syncCategories,
    TResult? Function()? clearCategories,
    TResult? Function()? clearProducts,
  }) {
    return clearProducts?.call();
  }

  @override
  @optionalTypeArgs
  TResult maybeWhen<TResult extends Object?>({
    TResult Function()? loadStats,
    TResult Function()? syncAllData,
    TResult Function()? clearAllData,
    TResult Function()? syncProducts,
    TResult Function()? syncCategories,
    TResult Function()? clearCategories,
    TResult Function()? clearProducts,
    required TResult orElse(),
  }) {
    if (clearProducts != null) {
      return clearProducts();
    }
    return orElse();
  }

  @override
  @optionalTypeArgs
  TResult map<TResult extends Object?>({
    required TResult Function(_LoadStats value) loadStats,
    required TResult Function(_SyncAllData value) syncAllData,
    required TResult Function(_ClearAllData value) clearAllData,
    required TResult Function(_SyncProducts value) syncProducts,
    required TResult Function(_SyncCategories value) syncCategories,
    required TResult Function(_ClearCategories value) clearCategories,
    required TResult Function(_ClearProducts value) clearProducts,
  }) {
    return clearProducts(this);
  }

  @override
  @optionalTypeArgs
  TResult? mapOrNull<TResult extends Object?>({
    TResult? Function(_LoadStats value)? loadStats,
    TResult? Function(_SyncAllData value)? syncAllData,
    TResult? Function(_ClearAllData value)? clearAllData,
    TResult? Function(_SyncProducts value)? syncProducts,
    TResult? Function(_SyncCategories value)? syncCategories,
    TResult? Function(_ClearCategories value)? clearCategories,
    TResult? Function(_ClearProducts value)? clearProducts,
  }) {
    return clearProducts?.call(this);
  }

  @override
  @optionalTypeArgs
  TResult maybeMap<TResult extends Object?>({
    TResult Function(_LoadStats value)? loadStats,
    TResult Function(_SyncAllData value)? syncAllData,
    TResult Function(_ClearAllData value)? clearAllData,
    TResult Function(_SyncProducts value)? syncProducts,
    TResult Function(_SyncCategories value)? syncCategories,
    TResult Function(_ClearCategories value)? clearCategories,
    TResult Function(_ClearProducts value)? clearProducts,
    required TResult orElse(),
  }) {
    if (clearProducts != null) {
      return clearProducts(this);
    }
    return orElse();
  }
}

abstract class _ClearProducts implements SyncSettingEvent {
  const factory _ClearProducts() = _$ClearProductsImpl;
}

/// @nodoc
mixin _$SyncSettingState {
  Map<String, dynamic> get productStats => throw _privateConstructorUsedError;
  Map<String, dynamic> get categoryStats => throw _privateConstructorUsedError;
  Option<CategoryFailure> get failureOptionCategory =>
      throw _privateConstructorUsedError;
  Option<ProductFailure> get failureOptionProduct =>
      throw _privateConstructorUsedError;
  Option<Either<ProductFailure, String>> get failureOptionSyncProduct =>
      throw _privateConstructorUsedError;
  Option<Either<CategoryFailure, String>> get failureOptionSyncCategory =>
      throw _privateConstructorUsedError;
  bool get isSyncing => throw _privateConstructorUsedError;
  bool get isLoading => throw _privateConstructorUsedError;

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

/// @nodoc
abstract class $SyncSettingStateCopyWith<$Res> {
  factory $SyncSettingStateCopyWith(
    SyncSettingState value,
    $Res Function(SyncSettingState) then,
  ) = _$SyncSettingStateCopyWithImpl<$Res, SyncSettingState>;
  @useResult
  $Res call({
    Map<String, dynamic> productStats,
    Map<String, dynamic> categoryStats,
    Option<CategoryFailure> failureOptionCategory,
    Option<ProductFailure> failureOptionProduct,
    Option<Either<ProductFailure, String>> failureOptionSyncProduct,
    Option<Either<CategoryFailure, String>> failureOptionSyncCategory,
    bool isSyncing,
    bool isLoading,
  });
}

/// @nodoc
class _$SyncSettingStateCopyWithImpl<$Res, $Val extends SyncSettingState>
    implements $SyncSettingStateCopyWith<$Res> {
  _$SyncSettingStateCopyWithImpl(this._value, this._then);

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

  /// Create a copy of SyncSettingState
  /// with the given fields replaced by the non-null parameter values.
  @pragma('vm:prefer-inline')
  @override
  $Res call({
    Object? productStats = null,
    Object? categoryStats = null,
    Object? failureOptionCategory = null,
    Object? failureOptionProduct = null,
    Object? failureOptionSyncProduct = null,
    Object? failureOptionSyncCategory = null,
    Object? isSyncing = null,
    Object? isLoading = null,
  }) {
    return _then(
      _value.copyWith(
            productStats: null == productStats
                ? _value.productStats
                : productStats // ignore: cast_nullable_to_non_nullable
                      as Map<String, dynamic>,
            categoryStats: null == categoryStats
                ? _value.categoryStats
                : categoryStats // ignore: cast_nullable_to_non_nullable
                      as Map<String, dynamic>,
            failureOptionCategory: null == failureOptionCategory
                ? _value.failureOptionCategory
                : failureOptionCategory // ignore: cast_nullable_to_non_nullable
                      as Option<CategoryFailure>,
            failureOptionProduct: null == failureOptionProduct
                ? _value.failureOptionProduct
                : failureOptionProduct // ignore: cast_nullable_to_non_nullable
                      as Option<ProductFailure>,
            failureOptionSyncProduct: null == failureOptionSyncProduct
                ? _value.failureOptionSyncProduct
                : failureOptionSyncProduct // ignore: cast_nullable_to_non_nullable
                      as Option<Either<ProductFailure, String>>,
            failureOptionSyncCategory: null == failureOptionSyncCategory
                ? _value.failureOptionSyncCategory
                : failureOptionSyncCategory // ignore: cast_nullable_to_non_nullable
                      as Option<Either<CategoryFailure, String>>,
            isSyncing: null == isSyncing
                ? _value.isSyncing
                : isSyncing // ignore: cast_nullable_to_non_nullable
                      as bool,
            isLoading: null == isLoading
                ? _value.isLoading
                : isLoading // ignore: cast_nullable_to_non_nullable
                      as bool,
          )
          as $Val,
    );
  }
}

/// @nodoc
abstract class _$$SyncSettingStateImplCopyWith<$Res>
    implements $SyncSettingStateCopyWith<$Res> {
  factory _$$SyncSettingStateImplCopyWith(
    _$SyncSettingStateImpl value,
    $Res Function(_$SyncSettingStateImpl) then,
  ) = __$$SyncSettingStateImplCopyWithImpl<$Res>;
  @override
  @useResult
  $Res call({
    Map<String, dynamic> productStats,
    Map<String, dynamic> categoryStats,
    Option<CategoryFailure> failureOptionCategory,
    Option<ProductFailure> failureOptionProduct,
    Option<Either<ProductFailure, String>> failureOptionSyncProduct,
    Option<Either<CategoryFailure, String>> failureOptionSyncCategory,
    bool isSyncing,
    bool isLoading,
  });
}

/// @nodoc
class __$$SyncSettingStateImplCopyWithImpl<$Res>
    extends _$SyncSettingStateCopyWithImpl<$Res, _$SyncSettingStateImpl>
    implements _$$SyncSettingStateImplCopyWith<$Res> {
  __$$SyncSettingStateImplCopyWithImpl(
    _$SyncSettingStateImpl _value,
    $Res Function(_$SyncSettingStateImpl) _then,
  ) : super(_value, _then);

  /// Create a copy of SyncSettingState
  /// with the given fields replaced by the non-null parameter values.
  @pragma('vm:prefer-inline')
  @override
  $Res call({
    Object? productStats = null,
    Object? categoryStats = null,
    Object? failureOptionCategory = null,
    Object? failureOptionProduct = null,
    Object? failureOptionSyncProduct = null,
    Object? failureOptionSyncCategory = null,
    Object? isSyncing = null,
    Object? isLoading = null,
  }) {
    return _then(
      _$SyncSettingStateImpl(
        productStats: null == productStats
            ? _value._productStats
            : productStats // ignore: cast_nullable_to_non_nullable
                  as Map<String, dynamic>,
        categoryStats: null == categoryStats
            ? _value._categoryStats
            : categoryStats // ignore: cast_nullable_to_non_nullable
                  as Map<String, dynamic>,
        failureOptionCategory: null == failureOptionCategory
            ? _value.failureOptionCategory
            : failureOptionCategory // ignore: cast_nullable_to_non_nullable
                  as Option<CategoryFailure>,
        failureOptionProduct: null == failureOptionProduct
            ? _value.failureOptionProduct
            : failureOptionProduct // ignore: cast_nullable_to_non_nullable
                  as Option<ProductFailure>,
        failureOptionSyncProduct: null == failureOptionSyncProduct
            ? _value.failureOptionSyncProduct
            : failureOptionSyncProduct // ignore: cast_nullable_to_non_nullable
                  as Option<Either<ProductFailure, String>>,
        failureOptionSyncCategory: null == failureOptionSyncCategory
            ? _value.failureOptionSyncCategory
            : failureOptionSyncCategory // ignore: cast_nullable_to_non_nullable
                  as Option<Either<CategoryFailure, String>>,
        isSyncing: null == isSyncing
            ? _value.isSyncing
            : isSyncing // ignore: cast_nullable_to_non_nullable
                  as bool,
        isLoading: null == isLoading
            ? _value.isLoading
            : isLoading // ignore: cast_nullable_to_non_nullable
                  as bool,
      ),
    );
  }
}

/// @nodoc

class _$SyncSettingStateImpl implements _SyncSettingState {
  _$SyncSettingStateImpl({
    required final Map<String, dynamic> productStats,
    required final Map<String, dynamic> categoryStats,
    required this.failureOptionCategory,
    required this.failureOptionProduct,
    required this.failureOptionSyncProduct,
    required this.failureOptionSyncCategory,
    this.isSyncing = false,
    this.isLoading = false,
  }) : _productStats = productStats,
       _categoryStats = categoryStats;

  final Map<String, dynamic> _productStats;
  @override
  Map<String, dynamic> get productStats {
    if (_productStats is EqualUnmodifiableMapView) return _productStats;
    // ignore: implicit_dynamic_type
    return EqualUnmodifiableMapView(_productStats);
  }

  final Map<String, dynamic> _categoryStats;
  @override
  Map<String, dynamic> get categoryStats {
    if (_categoryStats is EqualUnmodifiableMapView) return _categoryStats;
    // ignore: implicit_dynamic_type
    return EqualUnmodifiableMapView(_categoryStats);
  }

  @override
  final Option<CategoryFailure> failureOptionCategory;
  @override
  final Option<ProductFailure> failureOptionProduct;
  @override
  final Option<Either<ProductFailure, String>> failureOptionSyncProduct;
  @override
  final Option<Either<CategoryFailure, String>> failureOptionSyncCategory;
  @override
  @JsonKey()
  final bool isSyncing;
  @override
  @JsonKey()
  final bool isLoading;

  @override
  String toString() {
    return 'SyncSettingState(productStats: $productStats, categoryStats: $categoryStats, failureOptionCategory: $failureOptionCategory, failureOptionProduct: $failureOptionProduct, failureOptionSyncProduct: $failureOptionSyncProduct, failureOptionSyncCategory: $failureOptionSyncCategory, isSyncing: $isSyncing, isLoading: $isLoading)';
  }

  @override
  bool operator ==(Object other) {
    return identical(this, other) ||
        (other.runtimeType == runtimeType &&
            other is _$SyncSettingStateImpl &&
            const DeepCollectionEquality().equals(
              other._productStats,
              _productStats,
            ) &&
            const DeepCollectionEquality().equals(
              other._categoryStats,
              _categoryStats,
            ) &&
            (identical(other.failureOptionCategory, failureOptionCategory) ||
                other.failureOptionCategory == failureOptionCategory) &&
            (identical(other.failureOptionProduct, failureOptionProduct) ||
                other.failureOptionProduct == failureOptionProduct) &&
            (identical(
                  other.failureOptionSyncProduct,
                  failureOptionSyncProduct,
                ) ||
                other.failureOptionSyncProduct == failureOptionSyncProduct) &&
            (identical(
                  other.failureOptionSyncCategory,
                  failureOptionSyncCategory,
                ) ||
                other.failureOptionSyncCategory == failureOptionSyncCategory) &&
            (identical(other.isSyncing, isSyncing) ||
                other.isSyncing == isSyncing) &&
            (identical(other.isLoading, isLoading) ||
                other.isLoading == isLoading));
  }

  @override
  int get hashCode => Object.hash(
    runtimeType,
    const DeepCollectionEquality().hash(_productStats),
    const DeepCollectionEquality().hash(_categoryStats),
    failureOptionCategory,
    failureOptionProduct,
    failureOptionSyncProduct,
    failureOptionSyncCategory,
    isSyncing,
    isLoading,
  );

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

abstract class _SyncSettingState implements SyncSettingState {
  factory _SyncSettingState({
    required final Map<String, dynamic> productStats,
    required final Map<String, dynamic> categoryStats,
    required final Option<CategoryFailure> failureOptionCategory,
    required final Option<ProductFailure> failureOptionProduct,
    required final Option<Either<ProductFailure, String>>
    failureOptionSyncProduct,
    required final Option<Either<CategoryFailure, String>>
    failureOptionSyncCategory,
    final bool isSyncing,
    final bool isLoading,
  }) = _$SyncSettingStateImpl;

  @override
  Map<String, dynamic> get productStats;
  @override
  Map<String, dynamic> get categoryStats;
  @override
  Option<CategoryFailure> get failureOptionCategory;
  @override
  Option<ProductFailure> get failureOptionProduct;
  @override
  Option<Either<ProductFailure, String>> get failureOptionSyncProduct;
  @override
  Option<Either<CategoryFailure, String>> get failureOptionSyncCategory;
  @override
  bool get isSyncing;
  @override
  bool get isLoading;

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