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

/// @nodoc
mixin _$QuickSearchResult {
  @optionalTypeArgs
  TResult when<TResult extends Object?>({
    required TResult Function(String prefill, String? pattern, String hintText)
        helpText,
    required TResult Function(Source source) source,
    required TResult Function(Source source, String query) sourceSearch,
    required TResult Function(Category category) category,
    required TResult Function(Category category, Manga manga) categoryManga,
    required TResult Function(Category? category, Manga manga, Chapter chapter)
        categoryMangaChapter,
    required TResult Function(Source? source, Manga manga) manga,
    required TResult Function(Source? source, Manga manga, Chapter chapter)
        chapter,
    required TResult Function() globalSearch,
  }) =>
      throw _privateConstructorUsedError;
  @optionalTypeArgs
  TResult? whenOrNull<TResult extends Object?>({
    TResult? Function(String prefill, String? pattern, String hintText)?
        helpText,
    TResult? Function(Source source)? source,
    TResult? Function(Source source, String query)? sourceSearch,
    TResult? Function(Category category)? category,
    TResult? Function(Category category, Manga manga)? categoryManga,
    TResult? Function(Category? category, Manga manga, Chapter chapter)?
        categoryMangaChapter,
    TResult? Function(Source? source, Manga manga)? manga,
    TResult? Function(Source? source, Manga manga, Chapter chapter)? chapter,
    TResult? Function()? globalSearch,
  }) =>
      throw _privateConstructorUsedError;
  @optionalTypeArgs
  TResult maybeWhen<TResult extends Object?>({
    TResult Function(String prefill, String? pattern, String hintText)?
        helpText,
    TResult Function(Source source)? source,
    TResult Function(Source source, String query)? sourceSearch,
    TResult Function(Category category)? category,
    TResult Function(Category category, Manga manga)? categoryManga,
    TResult Function(Category? category, Manga manga, Chapter chapter)?
        categoryMangaChapter,
    TResult Function(Source? source, Manga manga)? manga,
    TResult Function(Source? source, Manga manga, Chapter chapter)? chapter,
    TResult Function()? globalSearch,
    required TResult orElse(),
  }) =>
      throw _privateConstructorUsedError;
  @optionalTypeArgs
  TResult map<TResult extends Object?>({
    required TResult Function(HelpTextQuickSearchResult value) helpText,
    required TResult Function(SourceQuickSearchResult value) source,
    required TResult Function(SourceSearchQuickSearchResult value) sourceSearch,
    required TResult Function(CategoryQuickSearchResult value) category,
    required TResult Function(CategoryMangaQuickSearchResult value)
        categoryManga,
    required TResult Function(CategoryMangaChapterQuickSearchResult value)
        categoryMangaChapter,
    required TResult Function(MangaQuickSearchResult value) manga,
    required TResult Function(ChapterQuickSearchResult value) chapter,
    required TResult Function(GlobalSearchQuickSearchResult value) globalSearch,
  }) =>
      throw _privateConstructorUsedError;
  @optionalTypeArgs
  TResult? mapOrNull<TResult extends Object?>({
    TResult? Function(HelpTextQuickSearchResult value)? helpText,
    TResult? Function(SourceQuickSearchResult value)? source,
    TResult? Function(SourceSearchQuickSearchResult value)? sourceSearch,
    TResult? Function(CategoryQuickSearchResult value)? category,
    TResult? Function(CategoryMangaQuickSearchResult value)? categoryManga,
    TResult? Function(CategoryMangaChapterQuickSearchResult value)?
        categoryMangaChapter,
    TResult? Function(MangaQuickSearchResult value)? manga,
    TResult? Function(ChapterQuickSearchResult value)? chapter,
    TResult? Function(GlobalSearchQuickSearchResult value)? globalSearch,
  }) =>
      throw _privateConstructorUsedError;
  @optionalTypeArgs
  TResult maybeMap<TResult extends Object?>({
    TResult Function(HelpTextQuickSearchResult value)? helpText,
    TResult Function(SourceQuickSearchResult value)? source,
    TResult Function(SourceSearchQuickSearchResult value)? sourceSearch,
    TResult Function(CategoryQuickSearchResult value)? category,
    TResult Function(CategoryMangaQuickSearchResult value)? categoryManga,
    TResult Function(CategoryMangaChapterQuickSearchResult value)?
        categoryMangaChapter,
    TResult Function(MangaQuickSearchResult value)? manga,
    TResult Function(ChapterQuickSearchResult value)? chapter,
    TResult Function(GlobalSearchQuickSearchResult value)? globalSearch,
    required TResult orElse(),
  }) =>
      throw _privateConstructorUsedError;
}

/// @nodoc
abstract class $QuickSearchResultCopyWith<$Res> {
  factory $QuickSearchResultCopyWith(
          QuickSearchResult value, $Res Function(QuickSearchResult) then) =
      _$QuickSearchResultCopyWithImpl<$Res, QuickSearchResult>;
}

/// @nodoc
class _$QuickSearchResultCopyWithImpl<$Res, $Val extends QuickSearchResult>
    implements $QuickSearchResultCopyWith<$Res> {
  _$QuickSearchResultCopyWithImpl(this._value, this._then);

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

/// @nodoc
abstract class _$$HelpTextQuickSearchResultImplCopyWith<$Res> {
  factory _$$HelpTextQuickSearchResultImplCopyWith(
          _$HelpTextQuickSearchResultImpl value,
          $Res Function(_$HelpTextQuickSearchResultImpl) then) =
      __$$HelpTextQuickSearchResultImplCopyWithImpl<$Res>;
  @useResult
  $Res call({String prefill, String? pattern, String hintText});
}

/// @nodoc
class __$$HelpTextQuickSearchResultImplCopyWithImpl<$Res>
    extends _$QuickSearchResultCopyWithImpl<$Res,
        _$HelpTextQuickSearchResultImpl>
    implements _$$HelpTextQuickSearchResultImplCopyWith<$Res> {
  __$$HelpTextQuickSearchResultImplCopyWithImpl(
      _$HelpTextQuickSearchResultImpl _value,
      $Res Function(_$HelpTextQuickSearchResultImpl) _then)
      : super(_value, _then);

  @pragma('vm:prefer-inline')
  @override
  $Res call({
    Object? prefill = null,
    Object? pattern = freezed,
    Object? hintText = null,
  }) {
    return _then(_$HelpTextQuickSearchResultImpl(
      prefill: null == prefill
          ? _value.prefill
          : prefill // ignore: cast_nullable_to_non_nullable
              as String,
      pattern: freezed == pattern
          ? _value.pattern
          : pattern // ignore: cast_nullable_to_non_nullable
              as String?,
      hintText: null == hintText
          ? _value.hintText
          : hintText // ignore: cast_nullable_to_non_nullable
              as String,
    ));
  }
}

/// @nodoc

class _$HelpTextQuickSearchResultImpl implements HelpTextQuickSearchResult {
  const _$HelpTextQuickSearchResultImpl(
      {required this.prefill, this.pattern, required this.hintText});

  @override
  final String prefill;
  @override
  final String? pattern;
  @override
  final String hintText;

  @override
  String toString() {
    return 'QuickSearchResult.helpText(prefill: $prefill, pattern: $pattern, hintText: $hintText)';
  }

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

  @override
  int get hashCode => Object.hash(runtimeType, prefill, pattern, hintText);

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

  @override
  @optionalTypeArgs
  TResult when<TResult extends Object?>({
    required TResult Function(String prefill, String? pattern, String hintText)
        helpText,
    required TResult Function(Source source) source,
    required TResult Function(Source source, String query) sourceSearch,
    required TResult Function(Category category) category,
    required TResult Function(Category category, Manga manga) categoryManga,
    required TResult Function(Category? category, Manga manga, Chapter chapter)
        categoryMangaChapter,
    required TResult Function(Source? source, Manga manga) manga,
    required TResult Function(Source? source, Manga manga, Chapter chapter)
        chapter,
    required TResult Function() globalSearch,
  }) {
    return helpText(prefill, pattern, hintText);
  }

  @override
  @optionalTypeArgs
  TResult? whenOrNull<TResult extends Object?>({
    TResult? Function(String prefill, String? pattern, String hintText)?
        helpText,
    TResult? Function(Source source)? source,
    TResult? Function(Source source, String query)? sourceSearch,
    TResult? Function(Category category)? category,
    TResult? Function(Category category, Manga manga)? categoryManga,
    TResult? Function(Category? category, Manga manga, Chapter chapter)?
        categoryMangaChapter,
    TResult? Function(Source? source, Manga manga)? manga,
    TResult? Function(Source? source, Manga manga, Chapter chapter)? chapter,
    TResult? Function()? globalSearch,
  }) {
    return helpText?.call(prefill, pattern, hintText);
  }

  @override
  @optionalTypeArgs
  TResult maybeWhen<TResult extends Object?>({
    TResult Function(String prefill, String? pattern, String hintText)?
        helpText,
    TResult Function(Source source)? source,
    TResult Function(Source source, String query)? sourceSearch,
    TResult Function(Category category)? category,
    TResult Function(Category category, Manga manga)? categoryManga,
    TResult Function(Category? category, Manga manga, Chapter chapter)?
        categoryMangaChapter,
    TResult Function(Source? source, Manga manga)? manga,
    TResult Function(Source? source, Manga manga, Chapter chapter)? chapter,
    TResult Function()? globalSearch,
    required TResult orElse(),
  }) {
    if (helpText != null) {
      return helpText(prefill, pattern, hintText);
    }
    return orElse();
  }

  @override
  @optionalTypeArgs
  TResult map<TResult extends Object?>({
    required TResult Function(HelpTextQuickSearchResult value) helpText,
    required TResult Function(SourceQuickSearchResult value) source,
    required TResult Function(SourceSearchQuickSearchResult value) sourceSearch,
    required TResult Function(CategoryQuickSearchResult value) category,
    required TResult Function(CategoryMangaQuickSearchResult value)
        categoryManga,
    required TResult Function(CategoryMangaChapterQuickSearchResult value)
        categoryMangaChapter,
    required TResult Function(MangaQuickSearchResult value) manga,
    required TResult Function(ChapterQuickSearchResult value) chapter,
    required TResult Function(GlobalSearchQuickSearchResult value) globalSearch,
  }) {
    return helpText(this);
  }

  @override
  @optionalTypeArgs
  TResult? mapOrNull<TResult extends Object?>({
    TResult? Function(HelpTextQuickSearchResult value)? helpText,
    TResult? Function(SourceQuickSearchResult value)? source,
    TResult? Function(SourceSearchQuickSearchResult value)? sourceSearch,
    TResult? Function(CategoryQuickSearchResult value)? category,
    TResult? Function(CategoryMangaQuickSearchResult value)? categoryManga,
    TResult? Function(CategoryMangaChapterQuickSearchResult value)?
        categoryMangaChapter,
    TResult? Function(MangaQuickSearchResult value)? manga,
    TResult? Function(ChapterQuickSearchResult value)? chapter,
    TResult? Function(GlobalSearchQuickSearchResult value)? globalSearch,
  }) {
    return helpText?.call(this);
  }

  @override
  @optionalTypeArgs
  TResult maybeMap<TResult extends Object?>({
    TResult Function(HelpTextQuickSearchResult value)? helpText,
    TResult Function(SourceQuickSearchResult value)? source,
    TResult Function(SourceSearchQuickSearchResult value)? sourceSearch,
    TResult Function(CategoryQuickSearchResult value)? category,
    TResult Function(CategoryMangaQuickSearchResult value)? categoryManga,
    TResult Function(CategoryMangaChapterQuickSearchResult value)?
        categoryMangaChapter,
    TResult Function(MangaQuickSearchResult value)? manga,
    TResult Function(ChapterQuickSearchResult value)? chapter,
    TResult Function(GlobalSearchQuickSearchResult value)? globalSearch,
    required TResult orElse(),
  }) {
    if (helpText != null) {
      return helpText(this);
    }
    return orElse();
  }
}

abstract class HelpTextQuickSearchResult implements QuickSearchResult {
  const factory HelpTextQuickSearchResult(
      {required final String prefill,
      final String? pattern,
      required final String hintText}) = _$HelpTextQuickSearchResultImpl;

  String get prefill;
  String? get pattern;
  String get hintText;
  @JsonKey(ignore: true)
  _$$HelpTextQuickSearchResultImplCopyWith<_$HelpTextQuickSearchResultImpl>
      get copyWith => throw _privateConstructorUsedError;
}

/// @nodoc
abstract class _$$SourceQuickSearchResultImplCopyWith<$Res> {
  factory _$$SourceQuickSearchResultImplCopyWith(
          _$SourceQuickSearchResultImpl value,
          $Res Function(_$SourceQuickSearchResultImpl) then) =
      __$$SourceQuickSearchResultImplCopyWithImpl<$Res>;
  @useResult
  $Res call({Source source});

  $SourceCopyWith<$Res> get source;
}

/// @nodoc
class __$$SourceQuickSearchResultImplCopyWithImpl<$Res>
    extends _$QuickSearchResultCopyWithImpl<$Res, _$SourceQuickSearchResultImpl>
    implements _$$SourceQuickSearchResultImplCopyWith<$Res> {
  __$$SourceQuickSearchResultImplCopyWithImpl(
      _$SourceQuickSearchResultImpl _value,
      $Res Function(_$SourceQuickSearchResultImpl) _then)
      : super(_value, _then);

  @pragma('vm:prefer-inline')
  @override
  $Res call({
    Object? source = null,
  }) {
    return _then(_$SourceQuickSearchResultImpl(
      source: null == source
          ? _value.source
          : source // ignore: cast_nullable_to_non_nullable
              as Source,
    ));
  }

  @override
  @pragma('vm:prefer-inline')
  $SourceCopyWith<$Res> get source {
    return $SourceCopyWith<$Res>(_value.source, (value) {
      return _then(_value.copyWith(source: value));
    });
  }
}

/// @nodoc

class _$SourceQuickSearchResultImpl implements SourceQuickSearchResult {
  const _$SourceQuickSearchResultImpl({required this.source});

  @override
  final Source source;

  @override
  String toString() {
    return 'QuickSearchResult.source(source: $source)';
  }

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

  @override
  int get hashCode => Object.hash(runtimeType, source);

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

  @override
  @optionalTypeArgs
  TResult when<TResult extends Object?>({
    required TResult Function(String prefill, String? pattern, String hintText)
        helpText,
    required TResult Function(Source source) source,
    required TResult Function(Source source, String query) sourceSearch,
    required TResult Function(Category category) category,
    required TResult Function(Category category, Manga manga) categoryManga,
    required TResult Function(Category? category, Manga manga, Chapter chapter)
        categoryMangaChapter,
    required TResult Function(Source? source, Manga manga) manga,
    required TResult Function(Source? source, Manga manga, Chapter chapter)
        chapter,
    required TResult Function() globalSearch,
  }) {
    return source(this.source);
  }

  @override
  @optionalTypeArgs
  TResult? whenOrNull<TResult extends Object?>({
    TResult? Function(String prefill, String? pattern, String hintText)?
        helpText,
    TResult? Function(Source source)? source,
    TResult? Function(Source source, String query)? sourceSearch,
    TResult? Function(Category category)? category,
    TResult? Function(Category category, Manga manga)? categoryManga,
    TResult? Function(Category? category, Manga manga, Chapter chapter)?
        categoryMangaChapter,
    TResult? Function(Source? source, Manga manga)? manga,
    TResult? Function(Source? source, Manga manga, Chapter chapter)? chapter,
    TResult? Function()? globalSearch,
  }) {
    return source?.call(this.source);
  }

  @override
  @optionalTypeArgs
  TResult maybeWhen<TResult extends Object?>({
    TResult Function(String prefill, String? pattern, String hintText)?
        helpText,
    TResult Function(Source source)? source,
    TResult Function(Source source, String query)? sourceSearch,
    TResult Function(Category category)? category,
    TResult Function(Category category, Manga manga)? categoryManga,
    TResult Function(Category? category, Manga manga, Chapter chapter)?
        categoryMangaChapter,
    TResult Function(Source? source, Manga manga)? manga,
    TResult Function(Source? source, Manga manga, Chapter chapter)? chapter,
    TResult Function()? globalSearch,
    required TResult orElse(),
  }) {
    if (source != null) {
      return source(this.source);
    }
    return orElse();
  }

  @override
  @optionalTypeArgs
  TResult map<TResult extends Object?>({
    required TResult Function(HelpTextQuickSearchResult value) helpText,
    required TResult Function(SourceQuickSearchResult value) source,
    required TResult Function(SourceSearchQuickSearchResult value) sourceSearch,
    required TResult Function(CategoryQuickSearchResult value) category,
    required TResult Function(CategoryMangaQuickSearchResult value)
        categoryManga,
    required TResult Function(CategoryMangaChapterQuickSearchResult value)
        categoryMangaChapter,
    required TResult Function(MangaQuickSearchResult value) manga,
    required TResult Function(ChapterQuickSearchResult value) chapter,
    required TResult Function(GlobalSearchQuickSearchResult value) globalSearch,
  }) {
    return source(this);
  }

  @override
  @optionalTypeArgs
  TResult? mapOrNull<TResult extends Object?>({
    TResult? Function(HelpTextQuickSearchResult value)? helpText,
    TResult? Function(SourceQuickSearchResult value)? source,
    TResult? Function(SourceSearchQuickSearchResult value)? sourceSearch,
    TResult? Function(CategoryQuickSearchResult value)? category,
    TResult? Function(CategoryMangaQuickSearchResult value)? categoryManga,
    TResult? Function(CategoryMangaChapterQuickSearchResult value)?
        categoryMangaChapter,
    TResult? Function(MangaQuickSearchResult value)? manga,
    TResult? Function(ChapterQuickSearchResult value)? chapter,
    TResult? Function(GlobalSearchQuickSearchResult value)? globalSearch,
  }) {
    return source?.call(this);
  }

  @override
  @optionalTypeArgs
  TResult maybeMap<TResult extends Object?>({
    TResult Function(HelpTextQuickSearchResult value)? helpText,
    TResult Function(SourceQuickSearchResult value)? source,
    TResult Function(SourceSearchQuickSearchResult value)? sourceSearch,
    TResult Function(CategoryQuickSearchResult value)? category,
    TResult Function(CategoryMangaQuickSearchResult value)? categoryManga,
    TResult Function(CategoryMangaChapterQuickSearchResult value)?
        categoryMangaChapter,
    TResult Function(MangaQuickSearchResult value)? manga,
    TResult Function(ChapterQuickSearchResult value)? chapter,
    TResult Function(GlobalSearchQuickSearchResult value)? globalSearch,
    required TResult orElse(),
  }) {
    if (source != null) {
      return source(this);
    }
    return orElse();
  }
}

abstract class SourceQuickSearchResult implements QuickSearchResult {
  const factory SourceQuickSearchResult({required final Source source}) =
      _$SourceQuickSearchResultImpl;

  Source get source;
  @JsonKey(ignore: true)
  _$$SourceQuickSearchResultImplCopyWith<_$SourceQuickSearchResultImpl>
      get copyWith => throw _privateConstructorUsedError;
}

/// @nodoc
abstract class _$$SourceSearchQuickSearchResultImplCopyWith<$Res> {
  factory _$$SourceSearchQuickSearchResultImplCopyWith(
          _$SourceSearchQuickSearchResultImpl value,
          $Res Function(_$SourceSearchQuickSearchResultImpl) then) =
      __$$SourceSearchQuickSearchResultImplCopyWithImpl<$Res>;
  @useResult
  $Res call({Source source, String query});

  $SourceCopyWith<$Res> get source;
}

/// @nodoc
class __$$SourceSearchQuickSearchResultImplCopyWithImpl<$Res>
    extends _$QuickSearchResultCopyWithImpl<$Res,
        _$SourceSearchQuickSearchResultImpl>
    implements _$$SourceSearchQuickSearchResultImplCopyWith<$Res> {
  __$$SourceSearchQuickSearchResultImplCopyWithImpl(
      _$SourceSearchQuickSearchResultImpl _value,
      $Res Function(_$SourceSearchQuickSearchResultImpl) _then)
      : super(_value, _then);

  @pragma('vm:prefer-inline')
  @override
  $Res call({
    Object? source = null,
    Object? query = null,
  }) {
    return _then(_$SourceSearchQuickSearchResultImpl(
      source: null == source
          ? _value.source
          : source // ignore: cast_nullable_to_non_nullable
              as Source,
      query: null == query
          ? _value.query
          : query // ignore: cast_nullable_to_non_nullable
              as String,
    ));
  }

  @override
  @pragma('vm:prefer-inline')
  $SourceCopyWith<$Res> get source {
    return $SourceCopyWith<$Res>(_value.source, (value) {
      return _then(_value.copyWith(source: value));
    });
  }
}

/// @nodoc

class _$SourceSearchQuickSearchResultImpl
    implements SourceSearchQuickSearchResult {
  const _$SourceSearchQuickSearchResultImpl(
      {required this.source, required this.query});

  @override
  final Source source;
  @override
  final String query;

  @override
  String toString() {
    return 'QuickSearchResult.sourceSearch(source: $source, query: $query)';
  }

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

  @override
  int get hashCode => Object.hash(runtimeType, source, query);

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

  @override
  @optionalTypeArgs
  TResult when<TResult extends Object?>({
    required TResult Function(String prefill, String? pattern, String hintText)
        helpText,
    required TResult Function(Source source) source,
    required TResult Function(Source source, String query) sourceSearch,
    required TResult Function(Category category) category,
    required TResult Function(Category category, Manga manga) categoryManga,
    required TResult Function(Category? category, Manga manga, Chapter chapter)
        categoryMangaChapter,
    required TResult Function(Source? source, Manga manga) manga,
    required TResult Function(Source? source, Manga manga, Chapter chapter)
        chapter,
    required TResult Function() globalSearch,
  }) {
    return sourceSearch(this.source, query);
  }

  @override
  @optionalTypeArgs
  TResult? whenOrNull<TResult extends Object?>({
    TResult? Function(String prefill, String? pattern, String hintText)?
        helpText,
    TResult? Function(Source source)? source,
    TResult? Function(Source source, String query)? sourceSearch,
    TResult? Function(Category category)? category,
    TResult? Function(Category category, Manga manga)? categoryManga,
    TResult? Function(Category? category, Manga manga, Chapter chapter)?
        categoryMangaChapter,
    TResult? Function(Source? source, Manga manga)? manga,
    TResult? Function(Source? source, Manga manga, Chapter chapter)? chapter,
    TResult? Function()? globalSearch,
  }) {
    return sourceSearch?.call(this.source, query);
  }

  @override
  @optionalTypeArgs
  TResult maybeWhen<TResult extends Object?>({
    TResult Function(String prefill, String? pattern, String hintText)?
        helpText,
    TResult Function(Source source)? source,
    TResult Function(Source source, String query)? sourceSearch,
    TResult Function(Category category)? category,
    TResult Function(Category category, Manga manga)? categoryManga,
    TResult Function(Category? category, Manga manga, Chapter chapter)?
        categoryMangaChapter,
    TResult Function(Source? source, Manga manga)? manga,
    TResult Function(Source? source, Manga manga, Chapter chapter)? chapter,
    TResult Function()? globalSearch,
    required TResult orElse(),
  }) {
    if (sourceSearch != null) {
      return sourceSearch(this.source, query);
    }
    return orElse();
  }

  @override
  @optionalTypeArgs
  TResult map<TResult extends Object?>({
    required TResult Function(HelpTextQuickSearchResult value) helpText,
    required TResult Function(SourceQuickSearchResult value) source,
    required TResult Function(SourceSearchQuickSearchResult value) sourceSearch,
    required TResult Function(CategoryQuickSearchResult value) category,
    required TResult Function(CategoryMangaQuickSearchResult value)
        categoryManga,
    required TResult Function(CategoryMangaChapterQuickSearchResult value)
        categoryMangaChapter,
    required TResult Function(MangaQuickSearchResult value) manga,
    required TResult Function(ChapterQuickSearchResult value) chapter,
    required TResult Function(GlobalSearchQuickSearchResult value) globalSearch,
  }) {
    return sourceSearch(this);
  }

  @override
  @optionalTypeArgs
  TResult? mapOrNull<TResult extends Object?>({
    TResult? Function(HelpTextQuickSearchResult value)? helpText,
    TResult? Function(SourceQuickSearchResult value)? source,
    TResult? Function(SourceSearchQuickSearchResult value)? sourceSearch,
    TResult? Function(CategoryQuickSearchResult value)? category,
    TResult? Function(CategoryMangaQuickSearchResult value)? categoryManga,
    TResult? Function(CategoryMangaChapterQuickSearchResult value)?
        categoryMangaChapter,
    TResult? Function(MangaQuickSearchResult value)? manga,
    TResult? Function(ChapterQuickSearchResult value)? chapter,
    TResult? Function(GlobalSearchQuickSearchResult value)? globalSearch,
  }) {
    return sourceSearch?.call(this);
  }

  @override
  @optionalTypeArgs
  TResult maybeMap<TResult extends Object?>({
    TResult Function(HelpTextQuickSearchResult value)? helpText,
    TResult Function(SourceQuickSearchResult value)? source,
    TResult Function(SourceSearchQuickSearchResult value)? sourceSearch,
    TResult Function(CategoryQuickSearchResult value)? category,
    TResult Function(CategoryMangaQuickSearchResult value)? categoryManga,
    TResult Function(CategoryMangaChapterQuickSearchResult value)?
        categoryMangaChapter,
    TResult Function(MangaQuickSearchResult value)? manga,
    TResult Function(ChapterQuickSearchResult value)? chapter,
    TResult Function(GlobalSearchQuickSearchResult value)? globalSearch,
    required TResult orElse(),
  }) {
    if (sourceSearch != null) {
      return sourceSearch(this);
    }
    return orElse();
  }
}

abstract class SourceSearchQuickSearchResult implements QuickSearchResult {
  const factory SourceSearchQuickSearchResult(
      {required final Source source,
      required final String query}) = _$SourceSearchQuickSearchResultImpl;

  Source get source;
  String get query;
  @JsonKey(ignore: true)
  _$$SourceSearchQuickSearchResultImplCopyWith<
          _$SourceSearchQuickSearchResultImpl>
      get copyWith => throw _privateConstructorUsedError;
}

/// @nodoc
abstract class _$$CategoryQuickSearchResultImplCopyWith<$Res> {
  factory _$$CategoryQuickSearchResultImplCopyWith(
          _$CategoryQuickSearchResultImpl value,
          $Res Function(_$CategoryQuickSearchResultImpl) then) =
      __$$CategoryQuickSearchResultImplCopyWithImpl<$Res>;
  @useResult
  $Res call({Category category});

  $CategoryCopyWith<$Res> get category;
}

/// @nodoc
class __$$CategoryQuickSearchResultImplCopyWithImpl<$Res>
    extends _$QuickSearchResultCopyWithImpl<$Res,
        _$CategoryQuickSearchResultImpl>
    implements _$$CategoryQuickSearchResultImplCopyWith<$Res> {
  __$$CategoryQuickSearchResultImplCopyWithImpl(
      _$CategoryQuickSearchResultImpl _value,
      $Res Function(_$CategoryQuickSearchResultImpl) _then)
      : super(_value, _then);

  @pragma('vm:prefer-inline')
  @override
  $Res call({
    Object? category = null,
  }) {
    return _then(_$CategoryQuickSearchResultImpl(
      category: null == category
          ? _value.category
          : category // ignore: cast_nullable_to_non_nullable
              as Category,
    ));
  }

  @override
  @pragma('vm:prefer-inline')
  $CategoryCopyWith<$Res> get category {
    return $CategoryCopyWith<$Res>(_value.category, (value) {
      return _then(_value.copyWith(category: value));
    });
  }
}

/// @nodoc

class _$CategoryQuickSearchResultImpl implements CategoryQuickSearchResult {
  const _$CategoryQuickSearchResultImpl({required this.category});

  @override
  final Category category;

  @override
  String toString() {
    return 'QuickSearchResult.category(category: $category)';
  }

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

  @override
  int get hashCode => Object.hash(runtimeType, category);

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

  @override
  @optionalTypeArgs
  TResult when<TResult extends Object?>({
    required TResult Function(String prefill, String? pattern, String hintText)
        helpText,
    required TResult Function(Source source) source,
    required TResult Function(Source source, String query) sourceSearch,
    required TResult Function(Category category) category,
    required TResult Function(Category category, Manga manga) categoryManga,
    required TResult Function(Category? category, Manga manga, Chapter chapter)
        categoryMangaChapter,
    required TResult Function(Source? source, Manga manga) manga,
    required TResult Function(Source? source, Manga manga, Chapter chapter)
        chapter,
    required TResult Function() globalSearch,
  }) {
    return category(this.category);
  }

  @override
  @optionalTypeArgs
  TResult? whenOrNull<TResult extends Object?>({
    TResult? Function(String prefill, String? pattern, String hintText)?
        helpText,
    TResult? Function(Source source)? source,
    TResult? Function(Source source, String query)? sourceSearch,
    TResult? Function(Category category)? category,
    TResult? Function(Category category, Manga manga)? categoryManga,
    TResult? Function(Category? category, Manga manga, Chapter chapter)?
        categoryMangaChapter,
    TResult? Function(Source? source, Manga manga)? manga,
    TResult? Function(Source? source, Manga manga, Chapter chapter)? chapter,
    TResult? Function()? globalSearch,
  }) {
    return category?.call(this.category);
  }

  @override
  @optionalTypeArgs
  TResult maybeWhen<TResult extends Object?>({
    TResult Function(String prefill, String? pattern, String hintText)?
        helpText,
    TResult Function(Source source)? source,
    TResult Function(Source source, String query)? sourceSearch,
    TResult Function(Category category)? category,
    TResult Function(Category category, Manga manga)? categoryManga,
    TResult Function(Category? category, Manga manga, Chapter chapter)?
        categoryMangaChapter,
    TResult Function(Source? source, Manga manga)? manga,
    TResult Function(Source? source, Manga manga, Chapter chapter)? chapter,
    TResult Function()? globalSearch,
    required TResult orElse(),
  }) {
    if (category != null) {
      return category(this.category);
    }
    return orElse();
  }

  @override
  @optionalTypeArgs
  TResult map<TResult extends Object?>({
    required TResult Function(HelpTextQuickSearchResult value) helpText,
    required TResult Function(SourceQuickSearchResult value) source,
    required TResult Function(SourceSearchQuickSearchResult value) sourceSearch,
    required TResult Function(CategoryQuickSearchResult value) category,
    required TResult Function(CategoryMangaQuickSearchResult value)
        categoryManga,
    required TResult Function(CategoryMangaChapterQuickSearchResult value)
        categoryMangaChapter,
    required TResult Function(MangaQuickSearchResult value) manga,
    required TResult Function(ChapterQuickSearchResult value) chapter,
    required TResult Function(GlobalSearchQuickSearchResult value) globalSearch,
  }) {
    return category(this);
  }

  @override
  @optionalTypeArgs
  TResult? mapOrNull<TResult extends Object?>({
    TResult? Function(HelpTextQuickSearchResult value)? helpText,
    TResult? Function(SourceQuickSearchResult value)? source,
    TResult? Function(SourceSearchQuickSearchResult value)? sourceSearch,
    TResult? Function(CategoryQuickSearchResult value)? category,
    TResult? Function(CategoryMangaQuickSearchResult value)? categoryManga,
    TResult? Function(CategoryMangaChapterQuickSearchResult value)?
        categoryMangaChapter,
    TResult? Function(MangaQuickSearchResult value)? manga,
    TResult? Function(ChapterQuickSearchResult value)? chapter,
    TResult? Function(GlobalSearchQuickSearchResult value)? globalSearch,
  }) {
    return category?.call(this);
  }

  @override
  @optionalTypeArgs
  TResult maybeMap<TResult extends Object?>({
    TResult Function(HelpTextQuickSearchResult value)? helpText,
    TResult Function(SourceQuickSearchResult value)? source,
    TResult Function(SourceSearchQuickSearchResult value)? sourceSearch,
    TResult Function(CategoryQuickSearchResult value)? category,
    TResult Function(CategoryMangaQuickSearchResult value)? categoryManga,
    TResult Function(CategoryMangaChapterQuickSearchResult value)?
        categoryMangaChapter,
    TResult Function(MangaQuickSearchResult value)? manga,
    TResult Function(ChapterQuickSearchResult value)? chapter,
    TResult Function(GlobalSearchQuickSearchResult value)? globalSearch,
    required TResult orElse(),
  }) {
    if (category != null) {
      return category(this);
    }
    return orElse();
  }
}

abstract class CategoryQuickSearchResult implements QuickSearchResult {
  const factory CategoryQuickSearchResult({required final Category category}) =
      _$CategoryQuickSearchResultImpl;

  Category get category;
  @JsonKey(ignore: true)
  _$$CategoryQuickSearchResultImplCopyWith<_$CategoryQuickSearchResultImpl>
      get copyWith => throw _privateConstructorUsedError;
}

/// @nodoc
abstract class _$$CategoryMangaQuickSearchResultImplCopyWith<$Res> {
  factory _$$CategoryMangaQuickSearchResultImplCopyWith(
          _$CategoryMangaQuickSearchResultImpl value,
          $Res Function(_$CategoryMangaQuickSearchResultImpl) then) =
      __$$CategoryMangaQuickSearchResultImplCopyWithImpl<$Res>;
  @useResult
  $Res call({Category category, Manga manga});

  $CategoryCopyWith<$Res> get category;
  $MangaCopyWith<$Res> get manga;
}

/// @nodoc
class __$$CategoryMangaQuickSearchResultImplCopyWithImpl<$Res>
    extends _$QuickSearchResultCopyWithImpl<$Res,
        _$CategoryMangaQuickSearchResultImpl>
    implements _$$CategoryMangaQuickSearchResultImplCopyWith<$Res> {
  __$$CategoryMangaQuickSearchResultImplCopyWithImpl(
      _$CategoryMangaQuickSearchResultImpl _value,
      $Res Function(_$CategoryMangaQuickSearchResultImpl) _then)
      : super(_value, _then);

  @pragma('vm:prefer-inline')
  @override
  $Res call({
    Object? category = null,
    Object? manga = null,
  }) {
    return _then(_$CategoryMangaQuickSearchResultImpl(
      category: null == category
          ? _value.category
          : category // ignore: cast_nullable_to_non_nullable
              as Category,
      manga: null == manga
          ? _value.manga
          : manga // ignore: cast_nullable_to_non_nullable
              as Manga,
    ));
  }

  @override
  @pragma('vm:prefer-inline')
  $CategoryCopyWith<$Res> get category {
    return $CategoryCopyWith<$Res>(_value.category, (value) {
      return _then(_value.copyWith(category: value));
    });
  }

  @override
  @pragma('vm:prefer-inline')
  $MangaCopyWith<$Res> get manga {
    return $MangaCopyWith<$Res>(_value.manga, (value) {
      return _then(_value.copyWith(manga: value));
    });
  }
}

/// @nodoc

class _$CategoryMangaQuickSearchResultImpl
    implements CategoryMangaQuickSearchResult {
  const _$CategoryMangaQuickSearchResultImpl(
      {required this.category, required this.manga});

  @override
  final Category category;
  @override
  final Manga manga;

  @override
  String toString() {
    return 'QuickSearchResult.categoryManga(category: $category, manga: $manga)';
  }

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

  @override
  int get hashCode => Object.hash(runtimeType, category, manga);

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

  @override
  @optionalTypeArgs
  TResult when<TResult extends Object?>({
    required TResult Function(String prefill, String? pattern, String hintText)
        helpText,
    required TResult Function(Source source) source,
    required TResult Function(Source source, String query) sourceSearch,
    required TResult Function(Category category) category,
    required TResult Function(Category category, Manga manga) categoryManga,
    required TResult Function(Category? category, Manga manga, Chapter chapter)
        categoryMangaChapter,
    required TResult Function(Source? source, Manga manga) manga,
    required TResult Function(Source? source, Manga manga, Chapter chapter)
        chapter,
    required TResult Function() globalSearch,
  }) {
    return categoryManga(this.category, this.manga);
  }

  @override
  @optionalTypeArgs
  TResult? whenOrNull<TResult extends Object?>({
    TResult? Function(String prefill, String? pattern, String hintText)?
        helpText,
    TResult? Function(Source source)? source,
    TResult? Function(Source source, String query)? sourceSearch,
    TResult? Function(Category category)? category,
    TResult? Function(Category category, Manga manga)? categoryManga,
    TResult? Function(Category? category, Manga manga, Chapter chapter)?
        categoryMangaChapter,
    TResult? Function(Source? source, Manga manga)? manga,
    TResult? Function(Source? source, Manga manga, Chapter chapter)? chapter,
    TResult? Function()? globalSearch,
  }) {
    return categoryManga?.call(this.category, this.manga);
  }

  @override
  @optionalTypeArgs
  TResult maybeWhen<TResult extends Object?>({
    TResult Function(String prefill, String? pattern, String hintText)?
        helpText,
    TResult Function(Source source)? source,
    TResult Function(Source source, String query)? sourceSearch,
    TResult Function(Category category)? category,
    TResult Function(Category category, Manga manga)? categoryManga,
    TResult Function(Category? category, Manga manga, Chapter chapter)?
        categoryMangaChapter,
    TResult Function(Source? source, Manga manga)? manga,
    TResult Function(Source? source, Manga manga, Chapter chapter)? chapter,
    TResult Function()? globalSearch,
    required TResult orElse(),
  }) {
    if (categoryManga != null) {
      return categoryManga(this.category, this.manga);
    }
    return orElse();
  }

  @override
  @optionalTypeArgs
  TResult map<TResult extends Object?>({
    required TResult Function(HelpTextQuickSearchResult value) helpText,
    required TResult Function(SourceQuickSearchResult value) source,
    required TResult Function(SourceSearchQuickSearchResult value) sourceSearch,
    required TResult Function(CategoryQuickSearchResult value) category,
    required TResult Function(CategoryMangaQuickSearchResult value)
        categoryManga,
    required TResult Function(CategoryMangaChapterQuickSearchResult value)
        categoryMangaChapter,
    required TResult Function(MangaQuickSearchResult value) manga,
    required TResult Function(ChapterQuickSearchResult value) chapter,
    required TResult Function(GlobalSearchQuickSearchResult value) globalSearch,
  }) {
    return categoryManga(this);
  }

  @override
  @optionalTypeArgs
  TResult? mapOrNull<TResult extends Object?>({
    TResult? Function(HelpTextQuickSearchResult value)? helpText,
    TResult? Function(SourceQuickSearchResult value)? source,
    TResult? Function(SourceSearchQuickSearchResult value)? sourceSearch,
    TResult? Function(CategoryQuickSearchResult value)? category,
    TResult? Function(CategoryMangaQuickSearchResult value)? categoryManga,
    TResult? Function(CategoryMangaChapterQuickSearchResult value)?
        categoryMangaChapter,
    TResult? Function(MangaQuickSearchResult value)? manga,
    TResult? Function(ChapterQuickSearchResult value)? chapter,
    TResult? Function(GlobalSearchQuickSearchResult value)? globalSearch,
  }) {
    return categoryManga?.call(this);
  }

  @override
  @optionalTypeArgs
  TResult maybeMap<TResult extends Object?>({
    TResult Function(HelpTextQuickSearchResult value)? helpText,
    TResult Function(SourceQuickSearchResult value)? source,
    TResult Function(SourceSearchQuickSearchResult value)? sourceSearch,
    TResult Function(CategoryQuickSearchResult value)? category,
    TResult Function(CategoryMangaQuickSearchResult value)? categoryManga,
    TResult Function(CategoryMangaChapterQuickSearchResult value)?
        categoryMangaChapter,
    TResult Function(MangaQuickSearchResult value)? manga,
    TResult Function(ChapterQuickSearchResult value)? chapter,
    TResult Function(GlobalSearchQuickSearchResult value)? globalSearch,
    required TResult orElse(),
  }) {
    if (categoryManga != null) {
      return categoryManga(this);
    }
    return orElse();
  }
}

abstract class CategoryMangaQuickSearchResult implements QuickSearchResult {
  const factory CategoryMangaQuickSearchResult(
      {required final Category category,
      required final Manga manga}) = _$CategoryMangaQuickSearchResultImpl;

  Category get category;
  Manga get manga;
  @JsonKey(ignore: true)
  _$$CategoryMangaQuickSearchResultImplCopyWith<
          _$CategoryMangaQuickSearchResultImpl>
      get copyWith => throw _privateConstructorUsedError;
}

/// @nodoc
abstract class _$$CategoryMangaChapterQuickSearchResultImplCopyWith<$Res> {
  factory _$$CategoryMangaChapterQuickSearchResultImplCopyWith(
          _$CategoryMangaChapterQuickSearchResultImpl value,
          $Res Function(_$CategoryMangaChapterQuickSearchResultImpl) then) =
      __$$CategoryMangaChapterQuickSearchResultImplCopyWithImpl<$Res>;
  @useResult
  $Res call({Category? category, Manga manga, Chapter chapter});

  $CategoryCopyWith<$Res>? get category;
  $MangaCopyWith<$Res> get manga;
  $ChapterCopyWith<$Res> get chapter;
}

/// @nodoc
class __$$CategoryMangaChapterQuickSearchResultImplCopyWithImpl<$Res>
    extends _$QuickSearchResultCopyWithImpl<$Res,
        _$CategoryMangaChapterQuickSearchResultImpl>
    implements _$$CategoryMangaChapterQuickSearchResultImplCopyWith<$Res> {
  __$$CategoryMangaChapterQuickSearchResultImplCopyWithImpl(
      _$CategoryMangaChapterQuickSearchResultImpl _value,
      $Res Function(_$CategoryMangaChapterQuickSearchResultImpl) _then)
      : super(_value, _then);

  @pragma('vm:prefer-inline')
  @override
  $Res call({
    Object? category = freezed,
    Object? manga = null,
    Object? chapter = null,
  }) {
    return _then(_$CategoryMangaChapterQuickSearchResultImpl(
      category: freezed == category
          ? _value.category
          : category // ignore: cast_nullable_to_non_nullable
              as Category?,
      manga: null == manga
          ? _value.manga
          : manga // ignore: cast_nullable_to_non_nullable
              as Manga,
      chapter: null == chapter
          ? _value.chapter
          : chapter // ignore: cast_nullable_to_non_nullable
              as Chapter,
    ));
  }

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

    return $CategoryCopyWith<$Res>(_value.category!, (value) {
      return _then(_value.copyWith(category: value));
    });
  }

  @override
  @pragma('vm:prefer-inline')
  $MangaCopyWith<$Res> get manga {
    return $MangaCopyWith<$Res>(_value.manga, (value) {
      return _then(_value.copyWith(manga: value));
    });
  }

  @override
  @pragma('vm:prefer-inline')
  $ChapterCopyWith<$Res> get chapter {
    return $ChapterCopyWith<$Res>(_value.chapter, (value) {
      return _then(_value.copyWith(chapter: value));
    });
  }
}

/// @nodoc

class _$CategoryMangaChapterQuickSearchResultImpl
    implements CategoryMangaChapterQuickSearchResult {
  const _$CategoryMangaChapterQuickSearchResultImpl(
      {this.category, required this.manga, required this.chapter});

  @override
  final Category? category;
  @override
  final Manga manga;
  @override
  final Chapter chapter;

  @override
  String toString() {
    return 'QuickSearchResult.categoryMangaChapter(category: $category, manga: $manga, chapter: $chapter)';
  }

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

  @override
  int get hashCode => Object.hash(runtimeType, category, manga, chapter);

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

  @override
  @optionalTypeArgs
  TResult when<TResult extends Object?>({
    required TResult Function(String prefill, String? pattern, String hintText)
        helpText,
    required TResult Function(Source source) source,
    required TResult Function(Source source, String query) sourceSearch,
    required TResult Function(Category category) category,
    required TResult Function(Category category, Manga manga) categoryManga,
    required TResult Function(Category? category, Manga manga, Chapter chapter)
        categoryMangaChapter,
    required TResult Function(Source? source, Manga manga) manga,
    required TResult Function(Source? source, Manga manga, Chapter chapter)
        chapter,
    required TResult Function() globalSearch,
  }) {
    return categoryMangaChapter(this.category, this.manga, this.chapter);
  }

  @override
  @optionalTypeArgs
  TResult? whenOrNull<TResult extends Object?>({
    TResult? Function(String prefill, String? pattern, String hintText)?
        helpText,
    TResult? Function(Source source)? source,
    TResult? Function(Source source, String query)? sourceSearch,
    TResult? Function(Category category)? category,
    TResult? Function(Category category, Manga manga)? categoryManga,
    TResult? Function(Category? category, Manga manga, Chapter chapter)?
        categoryMangaChapter,
    TResult? Function(Source? source, Manga manga)? manga,
    TResult? Function(Source? source, Manga manga, Chapter chapter)? chapter,
    TResult? Function()? globalSearch,
  }) {
    return categoryMangaChapter?.call(this.category, this.manga, this.chapter);
  }

  @override
  @optionalTypeArgs
  TResult maybeWhen<TResult extends Object?>({
    TResult Function(String prefill, String? pattern, String hintText)?
        helpText,
    TResult Function(Source source)? source,
    TResult Function(Source source, String query)? sourceSearch,
    TResult Function(Category category)? category,
    TResult Function(Category category, Manga manga)? categoryManga,
    TResult Function(Category? category, Manga manga, Chapter chapter)?
        categoryMangaChapter,
    TResult Function(Source? source, Manga manga)? manga,
    TResult Function(Source? source, Manga manga, Chapter chapter)? chapter,
    TResult Function()? globalSearch,
    required TResult orElse(),
  }) {
    if (categoryMangaChapter != null) {
      return categoryMangaChapter(this.category, this.manga, this.chapter);
    }
    return orElse();
  }

  @override
  @optionalTypeArgs
  TResult map<TResult extends Object?>({
    required TResult Function(HelpTextQuickSearchResult value) helpText,
    required TResult Function(SourceQuickSearchResult value) source,
    required TResult Function(SourceSearchQuickSearchResult value) sourceSearch,
    required TResult Function(CategoryQuickSearchResult value) category,
    required TResult Function(CategoryMangaQuickSearchResult value)
        categoryManga,
    required TResult Function(CategoryMangaChapterQuickSearchResult value)
        categoryMangaChapter,
    required TResult Function(MangaQuickSearchResult value) manga,
    required TResult Function(ChapterQuickSearchResult value) chapter,
    required TResult Function(GlobalSearchQuickSearchResult value) globalSearch,
  }) {
    return categoryMangaChapter(this);
  }

  @override
  @optionalTypeArgs
  TResult? mapOrNull<TResult extends Object?>({
    TResult? Function(HelpTextQuickSearchResult value)? helpText,
    TResult? Function(SourceQuickSearchResult value)? source,
    TResult? Function(SourceSearchQuickSearchResult value)? sourceSearch,
    TResult? Function(CategoryQuickSearchResult value)? category,
    TResult? Function(CategoryMangaQuickSearchResult value)? categoryManga,
    TResult? Function(CategoryMangaChapterQuickSearchResult value)?
        categoryMangaChapter,
    TResult? Function(MangaQuickSearchResult value)? manga,
    TResult? Function(ChapterQuickSearchResult value)? chapter,
    TResult? Function(GlobalSearchQuickSearchResult value)? globalSearch,
  }) {
    return categoryMangaChapter?.call(this);
  }

  @override
  @optionalTypeArgs
  TResult maybeMap<TResult extends Object?>({
    TResult Function(HelpTextQuickSearchResult value)? helpText,
    TResult Function(SourceQuickSearchResult value)? source,
    TResult Function(SourceSearchQuickSearchResult value)? sourceSearch,
    TResult Function(CategoryQuickSearchResult value)? category,
    TResult Function(CategoryMangaQuickSearchResult value)? categoryManga,
    TResult Function(CategoryMangaChapterQuickSearchResult value)?
        categoryMangaChapter,
    TResult Function(MangaQuickSearchResult value)? manga,
    TResult Function(ChapterQuickSearchResult value)? chapter,
    TResult Function(GlobalSearchQuickSearchResult value)? globalSearch,
    required TResult orElse(),
  }) {
    if (categoryMangaChapter != null) {
      return categoryMangaChapter(this);
    }
    return orElse();
  }
}

abstract class CategoryMangaChapterQuickSearchResult
    implements QuickSearchResult {
  const factory CategoryMangaChapterQuickSearchResult(
          {final Category? category,
          required final Manga manga,
          required final Chapter chapter}) =
      _$CategoryMangaChapterQuickSearchResultImpl;

  Category? get category;
  Manga get manga;
  Chapter get chapter;
  @JsonKey(ignore: true)
  _$$CategoryMangaChapterQuickSearchResultImplCopyWith<
          _$CategoryMangaChapterQuickSearchResultImpl>
      get copyWith => throw _privateConstructorUsedError;
}

/// @nodoc
abstract class _$$MangaQuickSearchResultImplCopyWith<$Res> {
  factory _$$MangaQuickSearchResultImplCopyWith(
          _$MangaQuickSearchResultImpl value,
          $Res Function(_$MangaQuickSearchResultImpl) then) =
      __$$MangaQuickSearchResultImplCopyWithImpl<$Res>;
  @useResult
  $Res call({Source? source, Manga manga});

  $SourceCopyWith<$Res>? get source;
  $MangaCopyWith<$Res> get manga;
}

/// @nodoc
class __$$MangaQuickSearchResultImplCopyWithImpl<$Res>
    extends _$QuickSearchResultCopyWithImpl<$Res, _$MangaQuickSearchResultImpl>
    implements _$$MangaQuickSearchResultImplCopyWith<$Res> {
  __$$MangaQuickSearchResultImplCopyWithImpl(
      _$MangaQuickSearchResultImpl _value,
      $Res Function(_$MangaQuickSearchResultImpl) _then)
      : super(_value, _then);

  @pragma('vm:prefer-inline')
  @override
  $Res call({
    Object? source = freezed,
    Object? manga = null,
  }) {
    return _then(_$MangaQuickSearchResultImpl(
      source: freezed == source
          ? _value.source
          : source // ignore: cast_nullable_to_non_nullable
              as Source?,
      manga: null == manga
          ? _value.manga
          : manga // ignore: cast_nullable_to_non_nullable
              as Manga,
    ));
  }

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

    return $SourceCopyWith<$Res>(_value.source!, (value) {
      return _then(_value.copyWith(source: value));
    });
  }

  @override
  @pragma('vm:prefer-inline')
  $MangaCopyWith<$Res> get manga {
    return $MangaCopyWith<$Res>(_value.manga, (value) {
      return _then(_value.copyWith(manga: value));
    });
  }
}

/// @nodoc

class _$MangaQuickSearchResultImpl implements MangaQuickSearchResult {
  const _$MangaQuickSearchResultImpl({this.source, required this.manga});

  @override
  final Source? source;
  @override
  final Manga manga;

  @override
  String toString() {
    return 'QuickSearchResult.manga(source: $source, manga: $manga)';
  }

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

  @override
  int get hashCode => Object.hash(runtimeType, source, manga);

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

  @override
  @optionalTypeArgs
  TResult when<TResult extends Object?>({
    required TResult Function(String prefill, String? pattern, String hintText)
        helpText,
    required TResult Function(Source source) source,
    required TResult Function(Source source, String query) sourceSearch,
    required TResult Function(Category category) category,
    required TResult Function(Category category, Manga manga) categoryManga,
    required TResult Function(Category? category, Manga manga, Chapter chapter)
        categoryMangaChapter,
    required TResult Function(Source? source, Manga manga) manga,
    required TResult Function(Source? source, Manga manga, Chapter chapter)
        chapter,
    required TResult Function() globalSearch,
  }) {
    return manga(this.source, this.manga);
  }

  @override
  @optionalTypeArgs
  TResult? whenOrNull<TResult extends Object?>({
    TResult? Function(String prefill, String? pattern, String hintText)?
        helpText,
    TResult? Function(Source source)? source,
    TResult? Function(Source source, String query)? sourceSearch,
    TResult? Function(Category category)? category,
    TResult? Function(Category category, Manga manga)? categoryManga,
    TResult? Function(Category? category, Manga manga, Chapter chapter)?
        categoryMangaChapter,
    TResult? Function(Source? source, Manga manga)? manga,
    TResult? Function(Source? source, Manga manga, Chapter chapter)? chapter,
    TResult? Function()? globalSearch,
  }) {
    return manga?.call(this.source, this.manga);
  }

  @override
  @optionalTypeArgs
  TResult maybeWhen<TResult extends Object?>({
    TResult Function(String prefill, String? pattern, String hintText)?
        helpText,
    TResult Function(Source source)? source,
    TResult Function(Source source, String query)? sourceSearch,
    TResult Function(Category category)? category,
    TResult Function(Category category, Manga manga)? categoryManga,
    TResult Function(Category? category, Manga manga, Chapter chapter)?
        categoryMangaChapter,
    TResult Function(Source? source, Manga manga)? manga,
    TResult Function(Source? source, Manga manga, Chapter chapter)? chapter,
    TResult Function()? globalSearch,
    required TResult orElse(),
  }) {
    if (manga != null) {
      return manga(this.source, this.manga);
    }
    return orElse();
  }

  @override
  @optionalTypeArgs
  TResult map<TResult extends Object?>({
    required TResult Function(HelpTextQuickSearchResult value) helpText,
    required TResult Function(SourceQuickSearchResult value) source,
    required TResult Function(SourceSearchQuickSearchResult value) sourceSearch,
    required TResult Function(CategoryQuickSearchResult value) category,
    required TResult Function(CategoryMangaQuickSearchResult value)
        categoryManga,
    required TResult Function(CategoryMangaChapterQuickSearchResult value)
        categoryMangaChapter,
    required TResult Function(MangaQuickSearchResult value) manga,
    required TResult Function(ChapterQuickSearchResult value) chapter,
    required TResult Function(GlobalSearchQuickSearchResult value) globalSearch,
  }) {
    return manga(this);
  }

  @override
  @optionalTypeArgs
  TResult? mapOrNull<TResult extends Object?>({
    TResult? Function(HelpTextQuickSearchResult value)? helpText,
    TResult? Function(SourceQuickSearchResult value)? source,
    TResult? Function(SourceSearchQuickSearchResult value)? sourceSearch,
    TResult? Function(CategoryQuickSearchResult value)? category,
    TResult? Function(CategoryMangaQuickSearchResult value)? categoryManga,
    TResult? Function(CategoryMangaChapterQuickSearchResult value)?
        categoryMangaChapter,
    TResult? Function(MangaQuickSearchResult value)? manga,
    TResult? Function(ChapterQuickSearchResult value)? chapter,
    TResult? Function(GlobalSearchQuickSearchResult value)? globalSearch,
  }) {
    return manga?.call(this);
  }

  @override
  @optionalTypeArgs
  TResult maybeMap<TResult extends Object?>({
    TResult Function(HelpTextQuickSearchResult value)? helpText,
    TResult Function(SourceQuickSearchResult value)? source,
    TResult Function(SourceSearchQuickSearchResult value)? sourceSearch,
    TResult Function(CategoryQuickSearchResult value)? category,
    TResult Function(CategoryMangaQuickSearchResult value)? categoryManga,
    TResult Function(CategoryMangaChapterQuickSearchResult value)?
        categoryMangaChapter,
    TResult Function(MangaQuickSearchResult value)? manga,
    TResult Function(ChapterQuickSearchResult value)? chapter,
    TResult Function(GlobalSearchQuickSearchResult value)? globalSearch,
    required TResult orElse(),
  }) {
    if (manga != null) {
      return manga(this);
    }
    return orElse();
  }
}

abstract class MangaQuickSearchResult implements QuickSearchResult {
  const factory MangaQuickSearchResult(
      {final Source? source,
      required final Manga manga}) = _$MangaQuickSearchResultImpl;

  Source? get source;
  Manga get manga;
  @JsonKey(ignore: true)
  _$$MangaQuickSearchResultImplCopyWith<_$MangaQuickSearchResultImpl>
      get copyWith => throw _privateConstructorUsedError;
}

/// @nodoc
abstract class _$$ChapterQuickSearchResultImplCopyWith<$Res> {
  factory _$$ChapterQuickSearchResultImplCopyWith(
          _$ChapterQuickSearchResultImpl value,
          $Res Function(_$ChapterQuickSearchResultImpl) then) =
      __$$ChapterQuickSearchResultImplCopyWithImpl<$Res>;
  @useResult
  $Res call({Source? source, Manga manga, Chapter chapter});

  $SourceCopyWith<$Res>? get source;
  $MangaCopyWith<$Res> get manga;
  $ChapterCopyWith<$Res> get chapter;
}

/// @nodoc
class __$$ChapterQuickSearchResultImplCopyWithImpl<$Res>
    extends _$QuickSearchResultCopyWithImpl<$Res,
        _$ChapterQuickSearchResultImpl>
    implements _$$ChapterQuickSearchResultImplCopyWith<$Res> {
  __$$ChapterQuickSearchResultImplCopyWithImpl(
      _$ChapterQuickSearchResultImpl _value,
      $Res Function(_$ChapterQuickSearchResultImpl) _then)
      : super(_value, _then);

  @pragma('vm:prefer-inline')
  @override
  $Res call({
    Object? source = freezed,
    Object? manga = null,
    Object? chapter = null,
  }) {
    return _then(_$ChapterQuickSearchResultImpl(
      source: freezed == source
          ? _value.source
          : source // ignore: cast_nullable_to_non_nullable
              as Source?,
      manga: null == manga
          ? _value.manga
          : manga // ignore: cast_nullable_to_non_nullable
              as Manga,
      chapter: null == chapter
          ? _value.chapter
          : chapter // ignore: cast_nullable_to_non_nullable
              as Chapter,
    ));
  }

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

    return $SourceCopyWith<$Res>(_value.source!, (value) {
      return _then(_value.copyWith(source: value));
    });
  }

  @override
  @pragma('vm:prefer-inline')
  $MangaCopyWith<$Res> get manga {
    return $MangaCopyWith<$Res>(_value.manga, (value) {
      return _then(_value.copyWith(manga: value));
    });
  }

  @override
  @pragma('vm:prefer-inline')
  $ChapterCopyWith<$Res> get chapter {
    return $ChapterCopyWith<$Res>(_value.chapter, (value) {
      return _then(_value.copyWith(chapter: value));
    });
  }
}

/// @nodoc

class _$ChapterQuickSearchResultImpl implements ChapterQuickSearchResult {
  const _$ChapterQuickSearchResultImpl(
      {this.source, required this.manga, required this.chapter});

  @override
  final Source? source;
  @override
  final Manga manga;
  @override
  final Chapter chapter;

  @override
  String toString() {
    return 'QuickSearchResult.chapter(source: $source, manga: $manga, chapter: $chapter)';
  }

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

  @override
  int get hashCode => Object.hash(runtimeType, source, manga, chapter);

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

  @override
  @optionalTypeArgs
  TResult when<TResult extends Object?>({
    required TResult Function(String prefill, String? pattern, String hintText)
        helpText,
    required TResult Function(Source source) source,
    required TResult Function(Source source, String query) sourceSearch,
    required TResult Function(Category category) category,
    required TResult Function(Category category, Manga manga) categoryManga,
    required TResult Function(Category? category, Manga manga, Chapter chapter)
        categoryMangaChapter,
    required TResult Function(Source? source, Manga manga) manga,
    required TResult Function(Source? source, Manga manga, Chapter chapter)
        chapter,
    required TResult Function() globalSearch,
  }) {
    return chapter(this.source, this.manga, this.chapter);
  }

  @override
  @optionalTypeArgs
  TResult? whenOrNull<TResult extends Object?>({
    TResult? Function(String prefill, String? pattern, String hintText)?
        helpText,
    TResult? Function(Source source)? source,
    TResult? Function(Source source, String query)? sourceSearch,
    TResult? Function(Category category)? category,
    TResult? Function(Category category, Manga manga)? categoryManga,
    TResult? Function(Category? category, Manga manga, Chapter chapter)?
        categoryMangaChapter,
    TResult? Function(Source? source, Manga manga)? manga,
    TResult? Function(Source? source, Manga manga, Chapter chapter)? chapter,
    TResult? Function()? globalSearch,
  }) {
    return chapter?.call(this.source, this.manga, this.chapter);
  }

  @override
  @optionalTypeArgs
  TResult maybeWhen<TResult extends Object?>({
    TResult Function(String prefill, String? pattern, String hintText)?
        helpText,
    TResult Function(Source source)? source,
    TResult Function(Source source, String query)? sourceSearch,
    TResult Function(Category category)? category,
    TResult Function(Category category, Manga manga)? categoryManga,
    TResult Function(Category? category, Manga manga, Chapter chapter)?
        categoryMangaChapter,
    TResult Function(Source? source, Manga manga)? manga,
    TResult Function(Source? source, Manga manga, Chapter chapter)? chapter,
    TResult Function()? globalSearch,
    required TResult orElse(),
  }) {
    if (chapter != null) {
      return chapter(this.source, this.manga, this.chapter);
    }
    return orElse();
  }

  @override
  @optionalTypeArgs
  TResult map<TResult extends Object?>({
    required TResult Function(HelpTextQuickSearchResult value) helpText,
    required TResult Function(SourceQuickSearchResult value) source,
    required TResult Function(SourceSearchQuickSearchResult value) sourceSearch,
    required TResult Function(CategoryQuickSearchResult value) category,
    required TResult Function(CategoryMangaQuickSearchResult value)
        categoryManga,
    required TResult Function(CategoryMangaChapterQuickSearchResult value)
        categoryMangaChapter,
    required TResult Function(MangaQuickSearchResult value) manga,
    required TResult Function(ChapterQuickSearchResult value) chapter,
    required TResult Function(GlobalSearchQuickSearchResult value) globalSearch,
  }) {
    return chapter(this);
  }

  @override
  @optionalTypeArgs
  TResult? mapOrNull<TResult extends Object?>({
    TResult? Function(HelpTextQuickSearchResult value)? helpText,
    TResult? Function(SourceQuickSearchResult value)? source,
    TResult? Function(SourceSearchQuickSearchResult value)? sourceSearch,
    TResult? Function(CategoryQuickSearchResult value)? category,
    TResult? Function(CategoryMangaQuickSearchResult value)? categoryManga,
    TResult? Function(CategoryMangaChapterQuickSearchResult value)?
        categoryMangaChapter,
    TResult? Function(MangaQuickSearchResult value)? manga,
    TResult? Function(ChapterQuickSearchResult value)? chapter,
    TResult? Function(GlobalSearchQuickSearchResult value)? globalSearch,
  }) {
    return chapter?.call(this);
  }

  @override
  @optionalTypeArgs
  TResult maybeMap<TResult extends Object?>({
    TResult Function(HelpTextQuickSearchResult value)? helpText,
    TResult Function(SourceQuickSearchResult value)? source,
    TResult Function(SourceSearchQuickSearchResult value)? sourceSearch,
    TResult Function(CategoryQuickSearchResult value)? category,
    TResult Function(CategoryMangaQuickSearchResult value)? categoryManga,
    TResult Function(CategoryMangaChapterQuickSearchResult value)?
        categoryMangaChapter,
    TResult Function(MangaQuickSearchResult value)? manga,
    TResult Function(ChapterQuickSearchResult value)? chapter,
    TResult Function(GlobalSearchQuickSearchResult value)? globalSearch,
    required TResult orElse(),
  }) {
    if (chapter != null) {
      return chapter(this);
    }
    return orElse();
  }
}

abstract class ChapterQuickSearchResult implements QuickSearchResult {
  const factory ChapterQuickSearchResult(
      {final Source? source,
      required final Manga manga,
      required final Chapter chapter}) = _$ChapterQuickSearchResultImpl;

  Source? get source;
  Manga get manga;
  Chapter get chapter;
  @JsonKey(ignore: true)
  _$$ChapterQuickSearchResultImplCopyWith<_$ChapterQuickSearchResultImpl>
      get copyWith => throw _privateConstructorUsedError;
}

/// @nodoc
abstract class _$$GlobalSearchQuickSearchResultImplCopyWith<$Res> {
  factory _$$GlobalSearchQuickSearchResultImplCopyWith(
          _$GlobalSearchQuickSearchResultImpl value,
          $Res Function(_$GlobalSearchQuickSearchResultImpl) then) =
      __$$GlobalSearchQuickSearchResultImplCopyWithImpl<$Res>;
}

/// @nodoc
class __$$GlobalSearchQuickSearchResultImplCopyWithImpl<$Res>
    extends _$QuickSearchResultCopyWithImpl<$Res,
        _$GlobalSearchQuickSearchResultImpl>
    implements _$$GlobalSearchQuickSearchResultImplCopyWith<$Res> {
  __$$GlobalSearchQuickSearchResultImplCopyWithImpl(
      _$GlobalSearchQuickSearchResultImpl _value,
      $Res Function(_$GlobalSearchQuickSearchResultImpl) _then)
      : super(_value, _then);
}

/// @nodoc

class _$GlobalSearchQuickSearchResultImpl
    implements GlobalSearchQuickSearchResult {
  const _$GlobalSearchQuickSearchResultImpl();

  @override
  String toString() {
    return 'QuickSearchResult.globalSearch()';
  }

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

  @override
  int get hashCode => runtimeType.hashCode;

  @override
  @optionalTypeArgs
  TResult when<TResult extends Object?>({
    required TResult Function(String prefill, String? pattern, String hintText)
        helpText,
    required TResult Function(Source source) source,
    required TResult Function(Source source, String query) sourceSearch,
    required TResult Function(Category category) category,
    required TResult Function(Category category, Manga manga) categoryManga,
    required TResult Function(Category? category, Manga manga, Chapter chapter)
        categoryMangaChapter,
    required TResult Function(Source? source, Manga manga) manga,
    required TResult Function(Source? source, Manga manga, Chapter chapter)
        chapter,
    required TResult Function() globalSearch,
  }) {
    return globalSearch();
  }

  @override
  @optionalTypeArgs
  TResult? whenOrNull<TResult extends Object?>({
    TResult? Function(String prefill, String? pattern, String hintText)?
        helpText,
    TResult? Function(Source source)? source,
    TResult? Function(Source source, String query)? sourceSearch,
    TResult? Function(Category category)? category,
    TResult? Function(Category category, Manga manga)? categoryManga,
    TResult? Function(Category? category, Manga manga, Chapter chapter)?
        categoryMangaChapter,
    TResult? Function(Source? source, Manga manga)? manga,
    TResult? Function(Source? source, Manga manga, Chapter chapter)? chapter,
    TResult? Function()? globalSearch,
  }) {
    return globalSearch?.call();
  }

  @override
  @optionalTypeArgs
  TResult maybeWhen<TResult extends Object?>({
    TResult Function(String prefill, String? pattern, String hintText)?
        helpText,
    TResult Function(Source source)? source,
    TResult Function(Source source, String query)? sourceSearch,
    TResult Function(Category category)? category,
    TResult Function(Category category, Manga manga)? categoryManga,
    TResult Function(Category? category, Manga manga, Chapter chapter)?
        categoryMangaChapter,
    TResult Function(Source? source, Manga manga)? manga,
    TResult Function(Source? source, Manga manga, Chapter chapter)? chapter,
    TResult Function()? globalSearch,
    required TResult orElse(),
  }) {
    if (globalSearch != null) {
      return globalSearch();
    }
    return orElse();
  }

  @override
  @optionalTypeArgs
  TResult map<TResult extends Object?>({
    required TResult Function(HelpTextQuickSearchResult value) helpText,
    required TResult Function(SourceQuickSearchResult value) source,
    required TResult Function(SourceSearchQuickSearchResult value) sourceSearch,
    required TResult Function(CategoryQuickSearchResult value) category,
    required TResult Function(CategoryMangaQuickSearchResult value)
        categoryManga,
    required TResult Function(CategoryMangaChapterQuickSearchResult value)
        categoryMangaChapter,
    required TResult Function(MangaQuickSearchResult value) manga,
    required TResult Function(ChapterQuickSearchResult value) chapter,
    required TResult Function(GlobalSearchQuickSearchResult value) globalSearch,
  }) {
    return globalSearch(this);
  }

  @override
  @optionalTypeArgs
  TResult? mapOrNull<TResult extends Object?>({
    TResult? Function(HelpTextQuickSearchResult value)? helpText,
    TResult? Function(SourceQuickSearchResult value)? source,
    TResult? Function(SourceSearchQuickSearchResult value)? sourceSearch,
    TResult? Function(CategoryQuickSearchResult value)? category,
    TResult? Function(CategoryMangaQuickSearchResult value)? categoryManga,
    TResult? Function(CategoryMangaChapterQuickSearchResult value)?
        categoryMangaChapter,
    TResult? Function(MangaQuickSearchResult value)? manga,
    TResult? Function(ChapterQuickSearchResult value)? chapter,
    TResult? Function(GlobalSearchQuickSearchResult value)? globalSearch,
  }) {
    return globalSearch?.call(this);
  }

  @override
  @optionalTypeArgs
  TResult maybeMap<TResult extends Object?>({
    TResult Function(HelpTextQuickSearchResult value)? helpText,
    TResult Function(SourceQuickSearchResult value)? source,
    TResult Function(SourceSearchQuickSearchResult value)? sourceSearch,
    TResult Function(CategoryQuickSearchResult value)? category,
    TResult Function(CategoryMangaQuickSearchResult value)? categoryManga,
    TResult Function(CategoryMangaChapterQuickSearchResult value)?
        categoryMangaChapter,
    TResult Function(MangaQuickSearchResult value)? manga,
    TResult Function(ChapterQuickSearchResult value)? chapter,
    TResult Function(GlobalSearchQuickSearchResult value)? globalSearch,
    required TResult orElse(),
  }) {
    if (globalSearch != null) {
      return globalSearch(this);
    }
    return orElse();
  }
}

abstract class GlobalSearchQuickSearchResult implements QuickSearchResult {
  const factory GlobalSearchQuickSearchResult() =
      _$GlobalSearchQuickSearchResultImpl;
}
