// GENERATED CODE - DO NOT MODIFY BY HAND
// ignore_for_file: deprecated_member_use_from_same_package, use_function_type_syntax_for_parameters, unnecessary_const, avoid_init_to_null, invalid_override_different_default_values_named

part of 'upload_stats_notifier.dart';

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

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

class _$UploadStatsStateTearOff {
  const _$UploadStatsStateTearOff();

  Initial initial() {
    return const Initial();
  }

  Loading loading() {
    return const Loading();
  }

  ErrorDetails error([String message]) {
    return ErrorDetails(
      message,
    );
  }

  WomResponse womResponse(DailyStatsResponse value) {
    return WomResponse(
      value,
    );
  }
}

// ignore: unused_element
const $UploadStatsState = _$UploadStatsStateTearOff();

mixin _$UploadStatsState {
  @optionalTypeArgs
  Result when<Result extends Object>({
    @required Result initial(),
    @required Result loading(),
    @required Result error(String message),
    @required Result womResponse(DailyStatsResponse value),
  });
  @optionalTypeArgs
  Result maybeWhen<Result extends Object>({
    Result initial(),
    Result loading(),
    Result error(String message),
    Result womResponse(DailyStatsResponse value),
    @required Result orElse(),
  });
  @optionalTypeArgs
  Result map<Result extends Object>({
    @required Result initial(Initial value),
    @required Result loading(Loading value),
    @required Result error(ErrorDetails value),
    @required Result womResponse(WomResponse value),
  });
  @optionalTypeArgs
  Result maybeMap<Result extends Object>({
    Result initial(Initial value),
    Result loading(Loading value),
    Result error(ErrorDetails value),
    Result womResponse(WomResponse value),
    @required Result orElse(),
  });
}

abstract class $UploadStatsStateCopyWith<$Res> {
  factory $UploadStatsStateCopyWith(
          UploadStatsState value, $Res Function(UploadStatsState) then) =
      _$UploadStatsStateCopyWithImpl<$Res>;
}

class _$UploadStatsStateCopyWithImpl<$Res>
    implements $UploadStatsStateCopyWith<$Res> {
  _$UploadStatsStateCopyWithImpl(this._value, this._then);

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

abstract class $InitialCopyWith<$Res> {
  factory $InitialCopyWith(Initial value, $Res Function(Initial) then) =
      _$InitialCopyWithImpl<$Res>;
}

class _$InitialCopyWithImpl<$Res> extends _$UploadStatsStateCopyWithImpl<$Res>
    implements $InitialCopyWith<$Res> {
  _$InitialCopyWithImpl(Initial _value, $Res Function(Initial) _then)
      : super(_value, (v) => _then(v as Initial));

  @override
  Initial get _value => super._value as Initial;
}

class _$Initial with DiagnosticableTreeMixin implements Initial {
  const _$Initial();

  @override
  String toString({DiagnosticLevel minLevel = DiagnosticLevel.info}) {
    return 'UploadStatsState.initial()';
  }

  @override
  void debugFillProperties(DiagnosticPropertiesBuilder properties) {
    super.debugFillProperties(properties);
    properties..add(DiagnosticsProperty('type', 'UploadStatsState.initial'));
  }

  @override
  bool operator ==(dynamic other) {
    return identical(this, other) || (other is Initial);
  }

  @override
  int get hashCode => runtimeType.hashCode;

  @override
  @optionalTypeArgs
  Result when<Result extends Object>({
    @required Result initial(),
    @required Result loading(),
    @required Result error(String message),
    @required Result womResponse(DailyStatsResponse value),
  }) {
    assert(initial != null);
    assert(loading != null);
    assert(error != null);
    assert(womResponse != null);
    return initial();
  }

  @override
  @optionalTypeArgs
  Result maybeWhen<Result extends Object>({
    Result initial(),
    Result loading(),
    Result error(String message),
    Result womResponse(DailyStatsResponse value),
    @required Result orElse(),
  }) {
    assert(orElse != null);
    if (initial != null) {
      return initial();
    }
    return orElse();
  }

  @override
  @optionalTypeArgs
  Result map<Result extends Object>({
    @required Result initial(Initial value),
    @required Result loading(Loading value),
    @required Result error(ErrorDetails value),
    @required Result womResponse(WomResponse value),
  }) {
    assert(initial != null);
    assert(loading != null);
    assert(error != null);
    assert(womResponse != null);
    return initial(this);
  }

  @override
  @optionalTypeArgs
  Result maybeMap<Result extends Object>({
    Result initial(Initial value),
    Result loading(Loading value),
    Result error(ErrorDetails value),
    Result womResponse(WomResponse value),
    @required Result orElse(),
  }) {
    assert(orElse != null);
    if (initial != null) {
      return initial(this);
    }
    return orElse();
  }
}

abstract class Initial implements UploadStatsState {
  const factory Initial() = _$Initial;
}

abstract class $LoadingCopyWith<$Res> {
  factory $LoadingCopyWith(Loading value, $Res Function(Loading) then) =
      _$LoadingCopyWithImpl<$Res>;
}

class _$LoadingCopyWithImpl<$Res> extends _$UploadStatsStateCopyWithImpl<$Res>
    implements $LoadingCopyWith<$Res> {
  _$LoadingCopyWithImpl(Loading _value, $Res Function(Loading) _then)
      : super(_value, (v) => _then(v as Loading));

  @override
  Loading get _value => super._value as Loading;
}

class _$Loading with DiagnosticableTreeMixin implements Loading {
  const _$Loading();

  @override
  String toString({DiagnosticLevel minLevel = DiagnosticLevel.info}) {
    return 'UploadStatsState.loading()';
  }

  @override
  void debugFillProperties(DiagnosticPropertiesBuilder properties) {
    super.debugFillProperties(properties);
    properties..add(DiagnosticsProperty('type', 'UploadStatsState.loading'));
  }

  @override
  bool operator ==(dynamic other) {
    return identical(this, other) || (other is Loading);
  }

  @override
  int get hashCode => runtimeType.hashCode;

  @override
  @optionalTypeArgs
  Result when<Result extends Object>({
    @required Result initial(),
    @required Result loading(),
    @required Result error(String message),
    @required Result womResponse(DailyStatsResponse value),
  }) {
    assert(initial != null);
    assert(loading != null);
    assert(error != null);
    assert(womResponse != null);
    return loading();
  }

  @override
  @optionalTypeArgs
  Result maybeWhen<Result extends Object>({
    Result initial(),
    Result loading(),
    Result error(String message),
    Result womResponse(DailyStatsResponse value),
    @required Result orElse(),
  }) {
    assert(orElse != null);
    if (loading != null) {
      return loading();
    }
    return orElse();
  }

  @override
  @optionalTypeArgs
  Result map<Result extends Object>({
    @required Result initial(Initial value),
    @required Result loading(Loading value),
    @required Result error(ErrorDetails value),
    @required Result womResponse(WomResponse value),
  }) {
    assert(initial != null);
    assert(loading != null);
    assert(error != null);
    assert(womResponse != null);
    return loading(this);
  }

  @override
  @optionalTypeArgs
  Result maybeMap<Result extends Object>({
    Result initial(Initial value),
    Result loading(Loading value),
    Result error(ErrorDetails value),
    Result womResponse(WomResponse value),
    @required Result orElse(),
  }) {
    assert(orElse != null);
    if (loading != null) {
      return loading(this);
    }
    return orElse();
  }
}

abstract class Loading implements UploadStatsState {
  const factory Loading() = _$Loading;
}

abstract class $ErrorDetailsCopyWith<$Res> {
  factory $ErrorDetailsCopyWith(
          ErrorDetails value, $Res Function(ErrorDetails) then) =
      _$ErrorDetailsCopyWithImpl<$Res>;
  $Res call({String message});
}

class _$ErrorDetailsCopyWithImpl<$Res>
    extends _$UploadStatsStateCopyWithImpl<$Res>
    implements $ErrorDetailsCopyWith<$Res> {
  _$ErrorDetailsCopyWithImpl(
      ErrorDetails _value, $Res Function(ErrorDetails) _then)
      : super(_value, (v) => _then(v as ErrorDetails));

  @override
  ErrorDetails get _value => super._value as ErrorDetails;

  @override
  $Res call({
    Object message = freezed,
  }) {
    return _then(ErrorDetails(
      message == freezed ? _value.message : message as String,
    ));
  }
}

class _$ErrorDetails with DiagnosticableTreeMixin implements ErrorDetails {
  const _$ErrorDetails([this.message]);

  @override
  final String message;

  @override
  String toString({DiagnosticLevel minLevel = DiagnosticLevel.info}) {
    return 'UploadStatsState.error(message: $message)';
  }

  @override
  void debugFillProperties(DiagnosticPropertiesBuilder properties) {
    super.debugFillProperties(properties);
    properties
      ..add(DiagnosticsProperty('type', 'UploadStatsState.error'))
      ..add(DiagnosticsProperty('message', message));
  }

  @override
  bool operator ==(dynamic other) {
    return identical(this, other) ||
        (other is ErrorDetails &&
            (identical(other.message, message) ||
                const DeepCollectionEquality().equals(other.message, message)));
  }

  @override
  int get hashCode =>
      runtimeType.hashCode ^ const DeepCollectionEquality().hash(message);

  @override
  $ErrorDetailsCopyWith<ErrorDetails> get copyWith =>
      _$ErrorDetailsCopyWithImpl<ErrorDetails>(this, _$identity);

  @override
  @optionalTypeArgs
  Result when<Result extends Object>({
    @required Result initial(),
    @required Result loading(),
    @required Result error(String message),
    @required Result womResponse(DailyStatsResponse value),
  }) {
    assert(initial != null);
    assert(loading != null);
    assert(error != null);
    assert(womResponse != null);
    return error(message);
  }

  @override
  @optionalTypeArgs
  Result maybeWhen<Result extends Object>({
    Result initial(),
    Result loading(),
    Result error(String message),
    Result womResponse(DailyStatsResponse value),
    @required Result orElse(),
  }) {
    assert(orElse != null);
    if (error != null) {
      return error(message);
    }
    return orElse();
  }

  @override
  @optionalTypeArgs
  Result map<Result extends Object>({
    @required Result initial(Initial value),
    @required Result loading(Loading value),
    @required Result error(ErrorDetails value),
    @required Result womResponse(WomResponse value),
  }) {
    assert(initial != null);
    assert(loading != null);
    assert(error != null);
    assert(womResponse != null);
    return error(this);
  }

  @override
  @optionalTypeArgs
  Result maybeMap<Result extends Object>({
    Result initial(Initial value),
    Result loading(Loading value),
    Result error(ErrorDetails value),
    Result womResponse(WomResponse value),
    @required Result orElse(),
  }) {
    assert(orElse != null);
    if (error != null) {
      return error(this);
    }
    return orElse();
  }
}

abstract class ErrorDetails implements UploadStatsState {
  const factory ErrorDetails([String message]) = _$ErrorDetails;

  String get message;
  $ErrorDetailsCopyWith<ErrorDetails> get copyWith;
}

abstract class $WomResponseCopyWith<$Res> {
  factory $WomResponseCopyWith(
          WomResponse value, $Res Function(WomResponse) then) =
      _$WomResponseCopyWithImpl<$Res>;
  $Res call({DailyStatsResponse value});
}

class _$WomResponseCopyWithImpl<$Res>
    extends _$UploadStatsStateCopyWithImpl<$Res>
    implements $WomResponseCopyWith<$Res> {
  _$WomResponseCopyWithImpl(
      WomResponse _value, $Res Function(WomResponse) _then)
      : super(_value, (v) => _then(v as WomResponse));

  @override
  WomResponse get _value => super._value as WomResponse;

  @override
  $Res call({
    Object value = freezed,
  }) {
    return _then(WomResponse(
      value == freezed ? _value.value : value as DailyStatsResponse,
    ));
  }
}

class _$WomResponse with DiagnosticableTreeMixin implements WomResponse {
  const _$WomResponse(this.value) : assert(value != null);

  @override
  final DailyStatsResponse value;

  @override
  String toString({DiagnosticLevel minLevel = DiagnosticLevel.info}) {
    return 'UploadStatsState.womResponse(value: $value)';
  }

  @override
  void debugFillProperties(DiagnosticPropertiesBuilder properties) {
    super.debugFillProperties(properties);
    properties
      ..add(DiagnosticsProperty('type', 'UploadStatsState.womResponse'))
      ..add(DiagnosticsProperty('value', value));
  }

  @override
  bool operator ==(dynamic other) {
    return identical(this, other) ||
        (other is WomResponse &&
            (identical(other.value, value) ||
                const DeepCollectionEquality().equals(other.value, value)));
  }

  @override
  int get hashCode =>
      runtimeType.hashCode ^ const DeepCollectionEquality().hash(value);

  @override
  $WomResponseCopyWith<WomResponse> get copyWith =>
      _$WomResponseCopyWithImpl<WomResponse>(this, _$identity);

  @override
  @optionalTypeArgs
  Result when<Result extends Object>({
    @required Result initial(),
    @required Result loading(),
    @required Result error(String message),
    @required Result womResponse(DailyStatsResponse value),
  }) {
    assert(initial != null);
    assert(loading != null);
    assert(error != null);
    assert(womResponse != null);
    return womResponse(value);
  }

  @override
  @optionalTypeArgs
  Result maybeWhen<Result extends Object>({
    Result initial(),
    Result loading(),
    Result error(String message),
    Result womResponse(DailyStatsResponse value),
    @required Result orElse(),
  }) {
    assert(orElse != null);
    if (womResponse != null) {
      return womResponse(value);
    }
    return orElse();
  }

  @override
  @optionalTypeArgs
  Result map<Result extends Object>({
    @required Result initial(Initial value),
    @required Result loading(Loading value),
    @required Result error(ErrorDetails value),
    @required Result womResponse(WomResponse value),
  }) {
    assert(initial != null);
    assert(loading != null);
    assert(error != null);
    assert(womResponse != null);
    return womResponse(this);
  }

  @override
  @optionalTypeArgs
  Result maybeMap<Result extends Object>({
    Result initial(Initial value),
    Result loading(Loading value),
    Result error(ErrorDetails value),
    Result womResponse(WomResponse value),
    @required Result orElse(),
  }) {
    assert(orElse != null);
    if (womResponse != null) {
      return womResponse(this);
    }
    return orElse();
  }
}

abstract class WomResponse implements UploadStatsState {
  const factory WomResponse(DailyStatsResponse value) = _$WomResponse;

  DailyStatsResponse get value;
  $WomResponseCopyWith<WomResponse> get copyWith;
}
