// 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 'print_struck_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 _$PrintStruckEvent {
  Order get order => throw _privateConstructorUsedError;
  @optionalTypeArgs
  TResult when<TResult extends Object?>({
    required TResult Function(Order order) order,
    required TResult Function(Order order) cashier,
    required TResult Function(Order order) payment,
    required TResult Function(Order order) voided,
    required TResult Function(Order order) checker,
    required TResult Function(Order order) kitchen,
    required TResult Function(Order order) bar,
    required TResult Function(Order order) splitBill,
  }) => throw _privateConstructorUsedError;
  @optionalTypeArgs
  TResult? whenOrNull<TResult extends Object?>({
    TResult? Function(Order order)? order,
    TResult? Function(Order order)? cashier,
    TResult? Function(Order order)? payment,
    TResult? Function(Order order)? voided,
    TResult? Function(Order order)? checker,
    TResult? Function(Order order)? kitchen,
    TResult? Function(Order order)? bar,
    TResult? Function(Order order)? splitBill,
  }) => throw _privateConstructorUsedError;
  @optionalTypeArgs
  TResult maybeWhen<TResult extends Object?>({
    TResult Function(Order order)? order,
    TResult Function(Order order)? cashier,
    TResult Function(Order order)? payment,
    TResult Function(Order order)? voided,
    TResult Function(Order order)? checker,
    TResult Function(Order order)? kitchen,
    TResult Function(Order order)? bar,
    TResult Function(Order order)? splitBill,
    required TResult orElse(),
  }) => throw _privateConstructorUsedError;
  @optionalTypeArgs
  TResult map<TResult extends Object?>({
    required TResult Function(_Order value) order,
    required TResult Function(_Cashier value) cashier,
    required TResult Function(_Payment value) payment,
    required TResult Function(_Voided value) voided,
    required TResult Function(_Checker value) checker,
    required TResult Function(_Kitchen value) kitchen,
    required TResult Function(_Bar value) bar,
    required TResult Function(_SplitBill value) splitBill,
  }) => throw _privateConstructorUsedError;
  @optionalTypeArgs
  TResult? mapOrNull<TResult extends Object?>({
    TResult? Function(_Order value)? order,
    TResult? Function(_Cashier value)? cashier,
    TResult? Function(_Payment value)? payment,
    TResult? Function(_Voided value)? voided,
    TResult? Function(_Checker value)? checker,
    TResult? Function(_Kitchen value)? kitchen,
    TResult? Function(_Bar value)? bar,
    TResult? Function(_SplitBill value)? splitBill,
  }) => throw _privateConstructorUsedError;
  @optionalTypeArgs
  TResult maybeMap<TResult extends Object?>({
    TResult Function(_Order value)? order,
    TResult Function(_Cashier value)? cashier,
    TResult Function(_Payment value)? payment,
    TResult Function(_Voided value)? voided,
    TResult Function(_Checker value)? checker,
    TResult Function(_Kitchen value)? kitchen,
    TResult Function(_Bar value)? bar,
    TResult Function(_SplitBill value)? splitBill,
    required TResult orElse(),
  }) => throw _privateConstructorUsedError;

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

/// @nodoc
abstract class $PrintStruckEventCopyWith<$Res> {
  factory $PrintStruckEventCopyWith(
    PrintStruckEvent value,
    $Res Function(PrintStruckEvent) then,
  ) = _$PrintStruckEventCopyWithImpl<$Res, PrintStruckEvent>;
  @useResult
  $Res call({Order order});

  $OrderCopyWith<$Res> get order;
}

/// @nodoc
class _$PrintStruckEventCopyWithImpl<$Res, $Val extends PrintStruckEvent>
    implements $PrintStruckEventCopyWith<$Res> {
  _$PrintStruckEventCopyWithImpl(this._value, this._then);

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

  /// Create a copy of PrintStruckEvent
  /// with the given fields replaced by the non-null parameter values.
  @pragma('vm:prefer-inline')
  @override
  $Res call({Object? order = null}) {
    return _then(
      _value.copyWith(
            order: null == order
                ? _value.order
                : order // ignore: cast_nullable_to_non_nullable
                      as Order,
          )
          as $Val,
    );
  }

  /// Create a copy of PrintStruckEvent
  /// with the given fields replaced by the non-null parameter values.
  @override
  @pragma('vm:prefer-inline')
  $OrderCopyWith<$Res> get order {
    return $OrderCopyWith<$Res>(_value.order, (value) {
      return _then(_value.copyWith(order: value) as $Val);
    });
  }
}

/// @nodoc
abstract class _$$OrderImplCopyWith<$Res>
    implements $PrintStruckEventCopyWith<$Res> {
  factory _$$OrderImplCopyWith(
    _$OrderImpl value,
    $Res Function(_$OrderImpl) then,
  ) = __$$OrderImplCopyWithImpl<$Res>;
  @override
  @useResult
  $Res call({Order order});

  @override
  $OrderCopyWith<$Res> get order;
}

/// @nodoc
class __$$OrderImplCopyWithImpl<$Res>
    extends _$PrintStruckEventCopyWithImpl<$Res, _$OrderImpl>
    implements _$$OrderImplCopyWith<$Res> {
  __$$OrderImplCopyWithImpl(
    _$OrderImpl _value,
    $Res Function(_$OrderImpl) _then,
  ) : super(_value, _then);

  /// Create a copy of PrintStruckEvent
  /// with the given fields replaced by the non-null parameter values.
  @pragma('vm:prefer-inline')
  @override
  $Res call({Object? order = null}) {
    return _then(
      _$OrderImpl(
        null == order
            ? _value.order
            : order // ignore: cast_nullable_to_non_nullable
                  as Order,
      ),
    );
  }
}

/// @nodoc

class _$OrderImpl implements _Order {
  const _$OrderImpl(this.order);

  @override
  final Order order;

  @override
  String toString() {
    return 'PrintStruckEvent.order(order: $order)';
  }

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

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

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

  @override
  @optionalTypeArgs
  TResult when<TResult extends Object?>({
    required TResult Function(Order order) order,
    required TResult Function(Order order) cashier,
    required TResult Function(Order order) payment,
    required TResult Function(Order order) voided,
    required TResult Function(Order order) checker,
    required TResult Function(Order order) kitchen,
    required TResult Function(Order order) bar,
    required TResult Function(Order order) splitBill,
  }) {
    return order(this.order);
  }

  @override
  @optionalTypeArgs
  TResult? whenOrNull<TResult extends Object?>({
    TResult? Function(Order order)? order,
    TResult? Function(Order order)? cashier,
    TResult? Function(Order order)? payment,
    TResult? Function(Order order)? voided,
    TResult? Function(Order order)? checker,
    TResult? Function(Order order)? kitchen,
    TResult? Function(Order order)? bar,
    TResult? Function(Order order)? splitBill,
  }) {
    return order?.call(this.order);
  }

  @override
  @optionalTypeArgs
  TResult maybeWhen<TResult extends Object?>({
    TResult Function(Order order)? order,
    TResult Function(Order order)? cashier,
    TResult Function(Order order)? payment,
    TResult Function(Order order)? voided,
    TResult Function(Order order)? checker,
    TResult Function(Order order)? kitchen,
    TResult Function(Order order)? bar,
    TResult Function(Order order)? splitBill,
    required TResult orElse(),
  }) {
    if (order != null) {
      return order(this.order);
    }
    return orElse();
  }

  @override
  @optionalTypeArgs
  TResult map<TResult extends Object?>({
    required TResult Function(_Order value) order,
    required TResult Function(_Cashier value) cashier,
    required TResult Function(_Payment value) payment,
    required TResult Function(_Voided value) voided,
    required TResult Function(_Checker value) checker,
    required TResult Function(_Kitchen value) kitchen,
    required TResult Function(_Bar value) bar,
    required TResult Function(_SplitBill value) splitBill,
  }) {
    return order(this);
  }

  @override
  @optionalTypeArgs
  TResult? mapOrNull<TResult extends Object?>({
    TResult? Function(_Order value)? order,
    TResult? Function(_Cashier value)? cashier,
    TResult? Function(_Payment value)? payment,
    TResult? Function(_Voided value)? voided,
    TResult? Function(_Checker value)? checker,
    TResult? Function(_Kitchen value)? kitchen,
    TResult? Function(_Bar value)? bar,
    TResult? Function(_SplitBill value)? splitBill,
  }) {
    return order?.call(this);
  }

  @override
  @optionalTypeArgs
  TResult maybeMap<TResult extends Object?>({
    TResult Function(_Order value)? order,
    TResult Function(_Cashier value)? cashier,
    TResult Function(_Payment value)? payment,
    TResult Function(_Voided value)? voided,
    TResult Function(_Checker value)? checker,
    TResult Function(_Kitchen value)? kitchen,
    TResult Function(_Bar value)? bar,
    TResult Function(_SplitBill value)? splitBill,
    required TResult orElse(),
  }) {
    if (order != null) {
      return order(this);
    }
    return orElse();
  }
}

abstract class _Order implements PrintStruckEvent {
  const factory _Order(final Order order) = _$OrderImpl;

  @override
  Order get order;

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

/// @nodoc
abstract class _$$CashierImplCopyWith<$Res>
    implements $PrintStruckEventCopyWith<$Res> {
  factory _$$CashierImplCopyWith(
    _$CashierImpl value,
    $Res Function(_$CashierImpl) then,
  ) = __$$CashierImplCopyWithImpl<$Res>;
  @override
  @useResult
  $Res call({Order order});

  @override
  $OrderCopyWith<$Res> get order;
}

/// @nodoc
class __$$CashierImplCopyWithImpl<$Res>
    extends _$PrintStruckEventCopyWithImpl<$Res, _$CashierImpl>
    implements _$$CashierImplCopyWith<$Res> {
  __$$CashierImplCopyWithImpl(
    _$CashierImpl _value,
    $Res Function(_$CashierImpl) _then,
  ) : super(_value, _then);

  /// Create a copy of PrintStruckEvent
  /// with the given fields replaced by the non-null parameter values.
  @pragma('vm:prefer-inline')
  @override
  $Res call({Object? order = null}) {
    return _then(
      _$CashierImpl(
        null == order
            ? _value.order
            : order // ignore: cast_nullable_to_non_nullable
                  as Order,
      ),
    );
  }
}

/// @nodoc

class _$CashierImpl implements _Cashier {
  const _$CashierImpl(this.order);

  @override
  final Order order;

  @override
  String toString() {
    return 'PrintStruckEvent.cashier(order: $order)';
  }

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

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

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

  @override
  @optionalTypeArgs
  TResult when<TResult extends Object?>({
    required TResult Function(Order order) order,
    required TResult Function(Order order) cashier,
    required TResult Function(Order order) payment,
    required TResult Function(Order order) voided,
    required TResult Function(Order order) checker,
    required TResult Function(Order order) kitchen,
    required TResult Function(Order order) bar,
    required TResult Function(Order order) splitBill,
  }) {
    return cashier(this.order);
  }

  @override
  @optionalTypeArgs
  TResult? whenOrNull<TResult extends Object?>({
    TResult? Function(Order order)? order,
    TResult? Function(Order order)? cashier,
    TResult? Function(Order order)? payment,
    TResult? Function(Order order)? voided,
    TResult? Function(Order order)? checker,
    TResult? Function(Order order)? kitchen,
    TResult? Function(Order order)? bar,
    TResult? Function(Order order)? splitBill,
  }) {
    return cashier?.call(this.order);
  }

  @override
  @optionalTypeArgs
  TResult maybeWhen<TResult extends Object?>({
    TResult Function(Order order)? order,
    TResult Function(Order order)? cashier,
    TResult Function(Order order)? payment,
    TResult Function(Order order)? voided,
    TResult Function(Order order)? checker,
    TResult Function(Order order)? kitchen,
    TResult Function(Order order)? bar,
    TResult Function(Order order)? splitBill,
    required TResult orElse(),
  }) {
    if (cashier != null) {
      return cashier(this.order);
    }
    return orElse();
  }

  @override
  @optionalTypeArgs
  TResult map<TResult extends Object?>({
    required TResult Function(_Order value) order,
    required TResult Function(_Cashier value) cashier,
    required TResult Function(_Payment value) payment,
    required TResult Function(_Voided value) voided,
    required TResult Function(_Checker value) checker,
    required TResult Function(_Kitchen value) kitchen,
    required TResult Function(_Bar value) bar,
    required TResult Function(_SplitBill value) splitBill,
  }) {
    return cashier(this);
  }

  @override
  @optionalTypeArgs
  TResult? mapOrNull<TResult extends Object?>({
    TResult? Function(_Order value)? order,
    TResult? Function(_Cashier value)? cashier,
    TResult? Function(_Payment value)? payment,
    TResult? Function(_Voided value)? voided,
    TResult? Function(_Checker value)? checker,
    TResult? Function(_Kitchen value)? kitchen,
    TResult? Function(_Bar value)? bar,
    TResult? Function(_SplitBill value)? splitBill,
  }) {
    return cashier?.call(this);
  }

  @override
  @optionalTypeArgs
  TResult maybeMap<TResult extends Object?>({
    TResult Function(_Order value)? order,
    TResult Function(_Cashier value)? cashier,
    TResult Function(_Payment value)? payment,
    TResult Function(_Voided value)? voided,
    TResult Function(_Checker value)? checker,
    TResult Function(_Kitchen value)? kitchen,
    TResult Function(_Bar value)? bar,
    TResult Function(_SplitBill value)? splitBill,
    required TResult orElse(),
  }) {
    if (cashier != null) {
      return cashier(this);
    }
    return orElse();
  }
}

abstract class _Cashier implements PrintStruckEvent {
  const factory _Cashier(final Order order) = _$CashierImpl;

  @override
  Order get order;

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

/// @nodoc
abstract class _$$PaymentImplCopyWith<$Res>
    implements $PrintStruckEventCopyWith<$Res> {
  factory _$$PaymentImplCopyWith(
    _$PaymentImpl value,
    $Res Function(_$PaymentImpl) then,
  ) = __$$PaymentImplCopyWithImpl<$Res>;
  @override
  @useResult
  $Res call({Order order});

  @override
  $OrderCopyWith<$Res> get order;
}

/// @nodoc
class __$$PaymentImplCopyWithImpl<$Res>
    extends _$PrintStruckEventCopyWithImpl<$Res, _$PaymentImpl>
    implements _$$PaymentImplCopyWith<$Res> {
  __$$PaymentImplCopyWithImpl(
    _$PaymentImpl _value,
    $Res Function(_$PaymentImpl) _then,
  ) : super(_value, _then);

  /// Create a copy of PrintStruckEvent
  /// with the given fields replaced by the non-null parameter values.
  @pragma('vm:prefer-inline')
  @override
  $Res call({Object? order = null}) {
    return _then(
      _$PaymentImpl(
        null == order
            ? _value.order
            : order // ignore: cast_nullable_to_non_nullable
                  as Order,
      ),
    );
  }
}

/// @nodoc

class _$PaymentImpl implements _Payment {
  const _$PaymentImpl(this.order);

  @override
  final Order order;

  @override
  String toString() {
    return 'PrintStruckEvent.payment(order: $order)';
  }

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

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

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

  @override
  @optionalTypeArgs
  TResult when<TResult extends Object?>({
    required TResult Function(Order order) order,
    required TResult Function(Order order) cashier,
    required TResult Function(Order order) payment,
    required TResult Function(Order order) voided,
    required TResult Function(Order order) checker,
    required TResult Function(Order order) kitchen,
    required TResult Function(Order order) bar,
    required TResult Function(Order order) splitBill,
  }) {
    return payment(this.order);
  }

  @override
  @optionalTypeArgs
  TResult? whenOrNull<TResult extends Object?>({
    TResult? Function(Order order)? order,
    TResult? Function(Order order)? cashier,
    TResult? Function(Order order)? payment,
    TResult? Function(Order order)? voided,
    TResult? Function(Order order)? checker,
    TResult? Function(Order order)? kitchen,
    TResult? Function(Order order)? bar,
    TResult? Function(Order order)? splitBill,
  }) {
    return payment?.call(this.order);
  }

  @override
  @optionalTypeArgs
  TResult maybeWhen<TResult extends Object?>({
    TResult Function(Order order)? order,
    TResult Function(Order order)? cashier,
    TResult Function(Order order)? payment,
    TResult Function(Order order)? voided,
    TResult Function(Order order)? checker,
    TResult Function(Order order)? kitchen,
    TResult Function(Order order)? bar,
    TResult Function(Order order)? splitBill,
    required TResult orElse(),
  }) {
    if (payment != null) {
      return payment(this.order);
    }
    return orElse();
  }

  @override
  @optionalTypeArgs
  TResult map<TResult extends Object?>({
    required TResult Function(_Order value) order,
    required TResult Function(_Cashier value) cashier,
    required TResult Function(_Payment value) payment,
    required TResult Function(_Voided value) voided,
    required TResult Function(_Checker value) checker,
    required TResult Function(_Kitchen value) kitchen,
    required TResult Function(_Bar value) bar,
    required TResult Function(_SplitBill value) splitBill,
  }) {
    return payment(this);
  }

  @override
  @optionalTypeArgs
  TResult? mapOrNull<TResult extends Object?>({
    TResult? Function(_Order value)? order,
    TResult? Function(_Cashier value)? cashier,
    TResult? Function(_Payment value)? payment,
    TResult? Function(_Voided value)? voided,
    TResult? Function(_Checker value)? checker,
    TResult? Function(_Kitchen value)? kitchen,
    TResult? Function(_Bar value)? bar,
    TResult? Function(_SplitBill value)? splitBill,
  }) {
    return payment?.call(this);
  }

  @override
  @optionalTypeArgs
  TResult maybeMap<TResult extends Object?>({
    TResult Function(_Order value)? order,
    TResult Function(_Cashier value)? cashier,
    TResult Function(_Payment value)? payment,
    TResult Function(_Voided value)? voided,
    TResult Function(_Checker value)? checker,
    TResult Function(_Kitchen value)? kitchen,
    TResult Function(_Bar value)? bar,
    TResult Function(_SplitBill value)? splitBill,
    required TResult orElse(),
  }) {
    if (payment != null) {
      return payment(this);
    }
    return orElse();
  }
}

abstract class _Payment implements PrintStruckEvent {
  const factory _Payment(final Order order) = _$PaymentImpl;

  @override
  Order get order;

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

/// @nodoc
abstract class _$$VoidedImplCopyWith<$Res>
    implements $PrintStruckEventCopyWith<$Res> {
  factory _$$VoidedImplCopyWith(
    _$VoidedImpl value,
    $Res Function(_$VoidedImpl) then,
  ) = __$$VoidedImplCopyWithImpl<$Res>;
  @override
  @useResult
  $Res call({Order order});

  @override
  $OrderCopyWith<$Res> get order;
}

/// @nodoc
class __$$VoidedImplCopyWithImpl<$Res>
    extends _$PrintStruckEventCopyWithImpl<$Res, _$VoidedImpl>
    implements _$$VoidedImplCopyWith<$Res> {
  __$$VoidedImplCopyWithImpl(
    _$VoidedImpl _value,
    $Res Function(_$VoidedImpl) _then,
  ) : super(_value, _then);

  /// Create a copy of PrintStruckEvent
  /// with the given fields replaced by the non-null parameter values.
  @pragma('vm:prefer-inline')
  @override
  $Res call({Object? order = null}) {
    return _then(
      _$VoidedImpl(
        null == order
            ? _value.order
            : order // ignore: cast_nullable_to_non_nullable
                  as Order,
      ),
    );
  }
}

/// @nodoc

class _$VoidedImpl implements _Voided {
  const _$VoidedImpl(this.order);

  @override
  final Order order;

  @override
  String toString() {
    return 'PrintStruckEvent.voided(order: $order)';
  }

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

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

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

  @override
  @optionalTypeArgs
  TResult when<TResult extends Object?>({
    required TResult Function(Order order) order,
    required TResult Function(Order order) cashier,
    required TResult Function(Order order) payment,
    required TResult Function(Order order) voided,
    required TResult Function(Order order) checker,
    required TResult Function(Order order) kitchen,
    required TResult Function(Order order) bar,
    required TResult Function(Order order) splitBill,
  }) {
    return voided(this.order);
  }

  @override
  @optionalTypeArgs
  TResult? whenOrNull<TResult extends Object?>({
    TResult? Function(Order order)? order,
    TResult? Function(Order order)? cashier,
    TResult? Function(Order order)? payment,
    TResult? Function(Order order)? voided,
    TResult? Function(Order order)? checker,
    TResult? Function(Order order)? kitchen,
    TResult? Function(Order order)? bar,
    TResult? Function(Order order)? splitBill,
  }) {
    return voided?.call(this.order);
  }

  @override
  @optionalTypeArgs
  TResult maybeWhen<TResult extends Object?>({
    TResult Function(Order order)? order,
    TResult Function(Order order)? cashier,
    TResult Function(Order order)? payment,
    TResult Function(Order order)? voided,
    TResult Function(Order order)? checker,
    TResult Function(Order order)? kitchen,
    TResult Function(Order order)? bar,
    TResult Function(Order order)? splitBill,
    required TResult orElse(),
  }) {
    if (voided != null) {
      return voided(this.order);
    }
    return orElse();
  }

  @override
  @optionalTypeArgs
  TResult map<TResult extends Object?>({
    required TResult Function(_Order value) order,
    required TResult Function(_Cashier value) cashier,
    required TResult Function(_Payment value) payment,
    required TResult Function(_Voided value) voided,
    required TResult Function(_Checker value) checker,
    required TResult Function(_Kitchen value) kitchen,
    required TResult Function(_Bar value) bar,
    required TResult Function(_SplitBill value) splitBill,
  }) {
    return voided(this);
  }

  @override
  @optionalTypeArgs
  TResult? mapOrNull<TResult extends Object?>({
    TResult? Function(_Order value)? order,
    TResult? Function(_Cashier value)? cashier,
    TResult? Function(_Payment value)? payment,
    TResult? Function(_Voided value)? voided,
    TResult? Function(_Checker value)? checker,
    TResult? Function(_Kitchen value)? kitchen,
    TResult? Function(_Bar value)? bar,
    TResult? Function(_SplitBill value)? splitBill,
  }) {
    return voided?.call(this);
  }

  @override
  @optionalTypeArgs
  TResult maybeMap<TResult extends Object?>({
    TResult Function(_Order value)? order,
    TResult Function(_Cashier value)? cashier,
    TResult Function(_Payment value)? payment,
    TResult Function(_Voided value)? voided,
    TResult Function(_Checker value)? checker,
    TResult Function(_Kitchen value)? kitchen,
    TResult Function(_Bar value)? bar,
    TResult Function(_SplitBill value)? splitBill,
    required TResult orElse(),
  }) {
    if (voided != null) {
      return voided(this);
    }
    return orElse();
  }
}

abstract class _Voided implements PrintStruckEvent {
  const factory _Voided(final Order order) = _$VoidedImpl;

  @override
  Order get order;

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

/// @nodoc
abstract class _$$CheckerImplCopyWith<$Res>
    implements $PrintStruckEventCopyWith<$Res> {
  factory _$$CheckerImplCopyWith(
    _$CheckerImpl value,
    $Res Function(_$CheckerImpl) then,
  ) = __$$CheckerImplCopyWithImpl<$Res>;
  @override
  @useResult
  $Res call({Order order});

  @override
  $OrderCopyWith<$Res> get order;
}

/// @nodoc
class __$$CheckerImplCopyWithImpl<$Res>
    extends _$PrintStruckEventCopyWithImpl<$Res, _$CheckerImpl>
    implements _$$CheckerImplCopyWith<$Res> {
  __$$CheckerImplCopyWithImpl(
    _$CheckerImpl _value,
    $Res Function(_$CheckerImpl) _then,
  ) : super(_value, _then);

  /// Create a copy of PrintStruckEvent
  /// with the given fields replaced by the non-null parameter values.
  @pragma('vm:prefer-inline')
  @override
  $Res call({Object? order = null}) {
    return _then(
      _$CheckerImpl(
        null == order
            ? _value.order
            : order // ignore: cast_nullable_to_non_nullable
                  as Order,
      ),
    );
  }
}

/// @nodoc

class _$CheckerImpl implements _Checker {
  const _$CheckerImpl(this.order);

  @override
  final Order order;

  @override
  String toString() {
    return 'PrintStruckEvent.checker(order: $order)';
  }

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

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

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

  @override
  @optionalTypeArgs
  TResult when<TResult extends Object?>({
    required TResult Function(Order order) order,
    required TResult Function(Order order) cashier,
    required TResult Function(Order order) payment,
    required TResult Function(Order order) voided,
    required TResult Function(Order order) checker,
    required TResult Function(Order order) kitchen,
    required TResult Function(Order order) bar,
    required TResult Function(Order order) splitBill,
  }) {
    return checker(this.order);
  }

  @override
  @optionalTypeArgs
  TResult? whenOrNull<TResult extends Object?>({
    TResult? Function(Order order)? order,
    TResult? Function(Order order)? cashier,
    TResult? Function(Order order)? payment,
    TResult? Function(Order order)? voided,
    TResult? Function(Order order)? checker,
    TResult? Function(Order order)? kitchen,
    TResult? Function(Order order)? bar,
    TResult? Function(Order order)? splitBill,
  }) {
    return checker?.call(this.order);
  }

  @override
  @optionalTypeArgs
  TResult maybeWhen<TResult extends Object?>({
    TResult Function(Order order)? order,
    TResult Function(Order order)? cashier,
    TResult Function(Order order)? payment,
    TResult Function(Order order)? voided,
    TResult Function(Order order)? checker,
    TResult Function(Order order)? kitchen,
    TResult Function(Order order)? bar,
    TResult Function(Order order)? splitBill,
    required TResult orElse(),
  }) {
    if (checker != null) {
      return checker(this.order);
    }
    return orElse();
  }

  @override
  @optionalTypeArgs
  TResult map<TResult extends Object?>({
    required TResult Function(_Order value) order,
    required TResult Function(_Cashier value) cashier,
    required TResult Function(_Payment value) payment,
    required TResult Function(_Voided value) voided,
    required TResult Function(_Checker value) checker,
    required TResult Function(_Kitchen value) kitchen,
    required TResult Function(_Bar value) bar,
    required TResult Function(_SplitBill value) splitBill,
  }) {
    return checker(this);
  }

  @override
  @optionalTypeArgs
  TResult? mapOrNull<TResult extends Object?>({
    TResult? Function(_Order value)? order,
    TResult? Function(_Cashier value)? cashier,
    TResult? Function(_Payment value)? payment,
    TResult? Function(_Voided value)? voided,
    TResult? Function(_Checker value)? checker,
    TResult? Function(_Kitchen value)? kitchen,
    TResult? Function(_Bar value)? bar,
    TResult? Function(_SplitBill value)? splitBill,
  }) {
    return checker?.call(this);
  }

  @override
  @optionalTypeArgs
  TResult maybeMap<TResult extends Object?>({
    TResult Function(_Order value)? order,
    TResult Function(_Cashier value)? cashier,
    TResult Function(_Payment value)? payment,
    TResult Function(_Voided value)? voided,
    TResult Function(_Checker value)? checker,
    TResult Function(_Kitchen value)? kitchen,
    TResult Function(_Bar value)? bar,
    TResult Function(_SplitBill value)? splitBill,
    required TResult orElse(),
  }) {
    if (checker != null) {
      return checker(this);
    }
    return orElse();
  }
}

abstract class _Checker implements PrintStruckEvent {
  const factory _Checker(final Order order) = _$CheckerImpl;

  @override
  Order get order;

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

/// @nodoc
abstract class _$$KitchenImplCopyWith<$Res>
    implements $PrintStruckEventCopyWith<$Res> {
  factory _$$KitchenImplCopyWith(
    _$KitchenImpl value,
    $Res Function(_$KitchenImpl) then,
  ) = __$$KitchenImplCopyWithImpl<$Res>;
  @override
  @useResult
  $Res call({Order order});

  @override
  $OrderCopyWith<$Res> get order;
}

/// @nodoc
class __$$KitchenImplCopyWithImpl<$Res>
    extends _$PrintStruckEventCopyWithImpl<$Res, _$KitchenImpl>
    implements _$$KitchenImplCopyWith<$Res> {
  __$$KitchenImplCopyWithImpl(
    _$KitchenImpl _value,
    $Res Function(_$KitchenImpl) _then,
  ) : super(_value, _then);

  /// Create a copy of PrintStruckEvent
  /// with the given fields replaced by the non-null parameter values.
  @pragma('vm:prefer-inline')
  @override
  $Res call({Object? order = null}) {
    return _then(
      _$KitchenImpl(
        null == order
            ? _value.order
            : order // ignore: cast_nullable_to_non_nullable
                  as Order,
      ),
    );
  }
}

/// @nodoc

class _$KitchenImpl implements _Kitchen {
  const _$KitchenImpl(this.order);

  @override
  final Order order;

  @override
  String toString() {
    return 'PrintStruckEvent.kitchen(order: $order)';
  }

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

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

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

  @override
  @optionalTypeArgs
  TResult when<TResult extends Object?>({
    required TResult Function(Order order) order,
    required TResult Function(Order order) cashier,
    required TResult Function(Order order) payment,
    required TResult Function(Order order) voided,
    required TResult Function(Order order) checker,
    required TResult Function(Order order) kitchen,
    required TResult Function(Order order) bar,
    required TResult Function(Order order) splitBill,
  }) {
    return kitchen(this.order);
  }

  @override
  @optionalTypeArgs
  TResult? whenOrNull<TResult extends Object?>({
    TResult? Function(Order order)? order,
    TResult? Function(Order order)? cashier,
    TResult? Function(Order order)? payment,
    TResult? Function(Order order)? voided,
    TResult? Function(Order order)? checker,
    TResult? Function(Order order)? kitchen,
    TResult? Function(Order order)? bar,
    TResult? Function(Order order)? splitBill,
  }) {
    return kitchen?.call(this.order);
  }

  @override
  @optionalTypeArgs
  TResult maybeWhen<TResult extends Object?>({
    TResult Function(Order order)? order,
    TResult Function(Order order)? cashier,
    TResult Function(Order order)? payment,
    TResult Function(Order order)? voided,
    TResult Function(Order order)? checker,
    TResult Function(Order order)? kitchen,
    TResult Function(Order order)? bar,
    TResult Function(Order order)? splitBill,
    required TResult orElse(),
  }) {
    if (kitchen != null) {
      return kitchen(this.order);
    }
    return orElse();
  }

  @override
  @optionalTypeArgs
  TResult map<TResult extends Object?>({
    required TResult Function(_Order value) order,
    required TResult Function(_Cashier value) cashier,
    required TResult Function(_Payment value) payment,
    required TResult Function(_Voided value) voided,
    required TResult Function(_Checker value) checker,
    required TResult Function(_Kitchen value) kitchen,
    required TResult Function(_Bar value) bar,
    required TResult Function(_SplitBill value) splitBill,
  }) {
    return kitchen(this);
  }

  @override
  @optionalTypeArgs
  TResult? mapOrNull<TResult extends Object?>({
    TResult? Function(_Order value)? order,
    TResult? Function(_Cashier value)? cashier,
    TResult? Function(_Payment value)? payment,
    TResult? Function(_Voided value)? voided,
    TResult? Function(_Checker value)? checker,
    TResult? Function(_Kitchen value)? kitchen,
    TResult? Function(_Bar value)? bar,
    TResult? Function(_SplitBill value)? splitBill,
  }) {
    return kitchen?.call(this);
  }

  @override
  @optionalTypeArgs
  TResult maybeMap<TResult extends Object?>({
    TResult Function(_Order value)? order,
    TResult Function(_Cashier value)? cashier,
    TResult Function(_Payment value)? payment,
    TResult Function(_Voided value)? voided,
    TResult Function(_Checker value)? checker,
    TResult Function(_Kitchen value)? kitchen,
    TResult Function(_Bar value)? bar,
    TResult Function(_SplitBill value)? splitBill,
    required TResult orElse(),
  }) {
    if (kitchen != null) {
      return kitchen(this);
    }
    return orElse();
  }
}

abstract class _Kitchen implements PrintStruckEvent {
  const factory _Kitchen(final Order order) = _$KitchenImpl;

  @override
  Order get order;

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

/// @nodoc
abstract class _$$BarImplCopyWith<$Res>
    implements $PrintStruckEventCopyWith<$Res> {
  factory _$$BarImplCopyWith(_$BarImpl value, $Res Function(_$BarImpl) then) =
      __$$BarImplCopyWithImpl<$Res>;
  @override
  @useResult
  $Res call({Order order});

  @override
  $OrderCopyWith<$Res> get order;
}

/// @nodoc
class __$$BarImplCopyWithImpl<$Res>
    extends _$PrintStruckEventCopyWithImpl<$Res, _$BarImpl>
    implements _$$BarImplCopyWith<$Res> {
  __$$BarImplCopyWithImpl(_$BarImpl _value, $Res Function(_$BarImpl) _then)
    : super(_value, _then);

  /// Create a copy of PrintStruckEvent
  /// with the given fields replaced by the non-null parameter values.
  @pragma('vm:prefer-inline')
  @override
  $Res call({Object? order = null}) {
    return _then(
      _$BarImpl(
        null == order
            ? _value.order
            : order // ignore: cast_nullable_to_non_nullable
                  as Order,
      ),
    );
  }
}

/// @nodoc

class _$BarImpl implements _Bar {
  const _$BarImpl(this.order);

  @override
  final Order order;

  @override
  String toString() {
    return 'PrintStruckEvent.bar(order: $order)';
  }

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

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

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

  @override
  @optionalTypeArgs
  TResult when<TResult extends Object?>({
    required TResult Function(Order order) order,
    required TResult Function(Order order) cashier,
    required TResult Function(Order order) payment,
    required TResult Function(Order order) voided,
    required TResult Function(Order order) checker,
    required TResult Function(Order order) kitchen,
    required TResult Function(Order order) bar,
    required TResult Function(Order order) splitBill,
  }) {
    return bar(this.order);
  }

  @override
  @optionalTypeArgs
  TResult? whenOrNull<TResult extends Object?>({
    TResult? Function(Order order)? order,
    TResult? Function(Order order)? cashier,
    TResult? Function(Order order)? payment,
    TResult? Function(Order order)? voided,
    TResult? Function(Order order)? checker,
    TResult? Function(Order order)? kitchen,
    TResult? Function(Order order)? bar,
    TResult? Function(Order order)? splitBill,
  }) {
    return bar?.call(this.order);
  }

  @override
  @optionalTypeArgs
  TResult maybeWhen<TResult extends Object?>({
    TResult Function(Order order)? order,
    TResult Function(Order order)? cashier,
    TResult Function(Order order)? payment,
    TResult Function(Order order)? voided,
    TResult Function(Order order)? checker,
    TResult Function(Order order)? kitchen,
    TResult Function(Order order)? bar,
    TResult Function(Order order)? splitBill,
    required TResult orElse(),
  }) {
    if (bar != null) {
      return bar(this.order);
    }
    return orElse();
  }

  @override
  @optionalTypeArgs
  TResult map<TResult extends Object?>({
    required TResult Function(_Order value) order,
    required TResult Function(_Cashier value) cashier,
    required TResult Function(_Payment value) payment,
    required TResult Function(_Voided value) voided,
    required TResult Function(_Checker value) checker,
    required TResult Function(_Kitchen value) kitchen,
    required TResult Function(_Bar value) bar,
    required TResult Function(_SplitBill value) splitBill,
  }) {
    return bar(this);
  }

  @override
  @optionalTypeArgs
  TResult? mapOrNull<TResult extends Object?>({
    TResult? Function(_Order value)? order,
    TResult? Function(_Cashier value)? cashier,
    TResult? Function(_Payment value)? payment,
    TResult? Function(_Voided value)? voided,
    TResult? Function(_Checker value)? checker,
    TResult? Function(_Kitchen value)? kitchen,
    TResult? Function(_Bar value)? bar,
    TResult? Function(_SplitBill value)? splitBill,
  }) {
    return bar?.call(this);
  }

  @override
  @optionalTypeArgs
  TResult maybeMap<TResult extends Object?>({
    TResult Function(_Order value)? order,
    TResult Function(_Cashier value)? cashier,
    TResult Function(_Payment value)? payment,
    TResult Function(_Voided value)? voided,
    TResult Function(_Checker value)? checker,
    TResult Function(_Kitchen value)? kitchen,
    TResult Function(_Bar value)? bar,
    TResult Function(_SplitBill value)? splitBill,
    required TResult orElse(),
  }) {
    if (bar != null) {
      return bar(this);
    }
    return orElse();
  }
}

abstract class _Bar implements PrintStruckEvent {
  const factory _Bar(final Order order) = _$BarImpl;

  @override
  Order get order;

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

/// @nodoc
abstract class _$$SplitBillImplCopyWith<$Res>
    implements $PrintStruckEventCopyWith<$Res> {
  factory _$$SplitBillImplCopyWith(
    _$SplitBillImpl value,
    $Res Function(_$SplitBillImpl) then,
  ) = __$$SplitBillImplCopyWithImpl<$Res>;
  @override
  @useResult
  $Res call({Order order});

  @override
  $OrderCopyWith<$Res> get order;
}

/// @nodoc
class __$$SplitBillImplCopyWithImpl<$Res>
    extends _$PrintStruckEventCopyWithImpl<$Res, _$SplitBillImpl>
    implements _$$SplitBillImplCopyWith<$Res> {
  __$$SplitBillImplCopyWithImpl(
    _$SplitBillImpl _value,
    $Res Function(_$SplitBillImpl) _then,
  ) : super(_value, _then);

  /// Create a copy of PrintStruckEvent
  /// with the given fields replaced by the non-null parameter values.
  @pragma('vm:prefer-inline')
  @override
  $Res call({Object? order = null}) {
    return _then(
      _$SplitBillImpl(
        null == order
            ? _value.order
            : order // ignore: cast_nullable_to_non_nullable
                  as Order,
      ),
    );
  }
}

/// @nodoc

class _$SplitBillImpl implements _SplitBill {
  const _$SplitBillImpl(this.order);

  @override
  final Order order;

  @override
  String toString() {
    return 'PrintStruckEvent.splitBill(order: $order)';
  }

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

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

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

  @override
  @optionalTypeArgs
  TResult when<TResult extends Object?>({
    required TResult Function(Order order) order,
    required TResult Function(Order order) cashier,
    required TResult Function(Order order) payment,
    required TResult Function(Order order) voided,
    required TResult Function(Order order) checker,
    required TResult Function(Order order) kitchen,
    required TResult Function(Order order) bar,
    required TResult Function(Order order) splitBill,
  }) {
    return splitBill(this.order);
  }

  @override
  @optionalTypeArgs
  TResult? whenOrNull<TResult extends Object?>({
    TResult? Function(Order order)? order,
    TResult? Function(Order order)? cashier,
    TResult? Function(Order order)? payment,
    TResult? Function(Order order)? voided,
    TResult? Function(Order order)? checker,
    TResult? Function(Order order)? kitchen,
    TResult? Function(Order order)? bar,
    TResult? Function(Order order)? splitBill,
  }) {
    return splitBill?.call(this.order);
  }

  @override
  @optionalTypeArgs
  TResult maybeWhen<TResult extends Object?>({
    TResult Function(Order order)? order,
    TResult Function(Order order)? cashier,
    TResult Function(Order order)? payment,
    TResult Function(Order order)? voided,
    TResult Function(Order order)? checker,
    TResult Function(Order order)? kitchen,
    TResult Function(Order order)? bar,
    TResult Function(Order order)? splitBill,
    required TResult orElse(),
  }) {
    if (splitBill != null) {
      return splitBill(this.order);
    }
    return orElse();
  }

  @override
  @optionalTypeArgs
  TResult map<TResult extends Object?>({
    required TResult Function(_Order value) order,
    required TResult Function(_Cashier value) cashier,
    required TResult Function(_Payment value) payment,
    required TResult Function(_Voided value) voided,
    required TResult Function(_Checker value) checker,
    required TResult Function(_Kitchen value) kitchen,
    required TResult Function(_Bar value) bar,
    required TResult Function(_SplitBill value) splitBill,
  }) {
    return splitBill(this);
  }

  @override
  @optionalTypeArgs
  TResult? mapOrNull<TResult extends Object?>({
    TResult? Function(_Order value)? order,
    TResult? Function(_Cashier value)? cashier,
    TResult? Function(_Payment value)? payment,
    TResult? Function(_Voided value)? voided,
    TResult? Function(_Checker value)? checker,
    TResult? Function(_Kitchen value)? kitchen,
    TResult? Function(_Bar value)? bar,
    TResult? Function(_SplitBill value)? splitBill,
  }) {
    return splitBill?.call(this);
  }

  @override
  @optionalTypeArgs
  TResult maybeMap<TResult extends Object?>({
    TResult Function(_Order value)? order,
    TResult Function(_Cashier value)? cashier,
    TResult Function(_Payment value)? payment,
    TResult Function(_Voided value)? voided,
    TResult Function(_Checker value)? checker,
    TResult Function(_Kitchen value)? kitchen,
    TResult Function(_Bar value)? bar,
    TResult Function(_SplitBill value)? splitBill,
    required TResult orElse(),
  }) {
    if (splitBill != null) {
      return splitBill(this);
    }
    return orElse();
  }
}

abstract class _SplitBill implements PrintStruckEvent {
  const factory _SplitBill(final Order order) = _$SplitBillImpl;

  @override
  Order get order;

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

/// @nodoc
mixin _$PrintStruckState {
  Option<Either<PrinterFailure, Unit>> get failureOrPrintStruck =>
      throw _privateConstructorUsedError;
  bool get isPrinting => throw _privateConstructorUsedError;

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

/// @nodoc
abstract class $PrintStruckStateCopyWith<$Res> {
  factory $PrintStruckStateCopyWith(
    PrintStruckState value,
    $Res Function(PrintStruckState) then,
  ) = _$PrintStruckStateCopyWithImpl<$Res, PrintStruckState>;
  @useResult
  $Res call({
    Option<Either<PrinterFailure, Unit>> failureOrPrintStruck,
    bool isPrinting,
  });
}

/// @nodoc
class _$PrintStruckStateCopyWithImpl<$Res, $Val extends PrintStruckState>
    implements $PrintStruckStateCopyWith<$Res> {
  _$PrintStruckStateCopyWithImpl(this._value, this._then);

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

  /// Create a copy of PrintStruckState
  /// with the given fields replaced by the non-null parameter values.
  @pragma('vm:prefer-inline')
  @override
  $Res call({Object? failureOrPrintStruck = null, Object? isPrinting = null}) {
    return _then(
      _value.copyWith(
            failureOrPrintStruck: null == failureOrPrintStruck
                ? _value.failureOrPrintStruck
                : failureOrPrintStruck // ignore: cast_nullable_to_non_nullable
                      as Option<Either<PrinterFailure, Unit>>,
            isPrinting: null == isPrinting
                ? _value.isPrinting
                : isPrinting // ignore: cast_nullable_to_non_nullable
                      as bool,
          )
          as $Val,
    );
  }
}

/// @nodoc
abstract class _$$PrintStruckStateImplCopyWith<$Res>
    implements $PrintStruckStateCopyWith<$Res> {
  factory _$$PrintStruckStateImplCopyWith(
    _$PrintStruckStateImpl value,
    $Res Function(_$PrintStruckStateImpl) then,
  ) = __$$PrintStruckStateImplCopyWithImpl<$Res>;
  @override
  @useResult
  $Res call({
    Option<Either<PrinterFailure, Unit>> failureOrPrintStruck,
    bool isPrinting,
  });
}

/// @nodoc
class __$$PrintStruckStateImplCopyWithImpl<$Res>
    extends _$PrintStruckStateCopyWithImpl<$Res, _$PrintStruckStateImpl>
    implements _$$PrintStruckStateImplCopyWith<$Res> {
  __$$PrintStruckStateImplCopyWithImpl(
    _$PrintStruckStateImpl _value,
    $Res Function(_$PrintStruckStateImpl) _then,
  ) : super(_value, _then);

  /// Create a copy of PrintStruckState
  /// with the given fields replaced by the non-null parameter values.
  @pragma('vm:prefer-inline')
  @override
  $Res call({Object? failureOrPrintStruck = null, Object? isPrinting = null}) {
    return _then(
      _$PrintStruckStateImpl(
        failureOrPrintStruck: null == failureOrPrintStruck
            ? _value.failureOrPrintStruck
            : failureOrPrintStruck // ignore: cast_nullable_to_non_nullable
                  as Option<Either<PrinterFailure, Unit>>,
        isPrinting: null == isPrinting
            ? _value.isPrinting
            : isPrinting // ignore: cast_nullable_to_non_nullable
                  as bool,
      ),
    );
  }
}

/// @nodoc

class _$PrintStruckStateImpl implements _PrintStruckState {
  _$PrintStruckStateImpl({
    required this.failureOrPrintStruck,
    this.isPrinting = false,
  });

  @override
  final Option<Either<PrinterFailure, Unit>> failureOrPrintStruck;
  @override
  @JsonKey()
  final bool isPrinting;

  @override
  String toString() {
    return 'PrintStruckState(failureOrPrintStruck: $failureOrPrintStruck, isPrinting: $isPrinting)';
  }

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

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

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

abstract class _PrintStruckState implements PrintStruckState {
  factory _PrintStruckState({
    required final Option<Either<PrinterFailure, Unit>> failureOrPrintStruck,
    final bool isPrinting,
  }) = _$PrintStruckStateImpl;

  @override
  Option<Either<PrinterFailure, Unit>> get failureOrPrintStruck;
  @override
  bool get isPrinting;

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