// GENERATED CODE - DO NOT MODIFY BY HAND
// coverage:ignore-file
// 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 'livestock_model.dart';

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

// dart format off
T _$identity<T>(T value) => value;

/// @nodoc
mixin _$LivestockData {

 Rancher? get rancher; Herd? get herd; List<Livestock>? get livestock;
/// Create a copy of LivestockData
/// with the given fields replaced by the non-null parameter values.
@JsonKey(includeFromJson: false, includeToJson: false)
@pragma('vm:prefer-inline')
$LivestockDataCopyWith<LivestockData> get copyWith => _$LivestockDataCopyWithImpl<LivestockData>(this as LivestockData, _$identity);

  /// Serializes this LivestockData to a JSON map.
  Map<String, dynamic> toJson();


@override
bool operator ==(Object other) {
  return identical(this, other) || (other.runtimeType == runtimeType&&other is LivestockData&&(identical(other.rancher, rancher) || other.rancher == rancher)&&(identical(other.herd, herd) || other.herd == herd)&&const DeepCollectionEquality().equals(other.livestock, livestock));
}

@JsonKey(includeFromJson: false, includeToJson: false)
@override
int get hashCode => Object.hash(runtimeType,rancher,herd,const DeepCollectionEquality().hash(livestock));

@override
String toString() {
  return 'LivestockData(rancher: $rancher, herd: $herd, livestock: $livestock)';
}


}

/// @nodoc
abstract mixin class $LivestockDataCopyWith<$Res>  {
  factory $LivestockDataCopyWith(LivestockData value, $Res Function(LivestockData) _then) = _$LivestockDataCopyWithImpl;
@useResult
$Res call({
 Rancher? rancher, Herd? herd, List<Livestock>? livestock
});


$RancherCopyWith<$Res>? get rancher;$HerdCopyWith<$Res>? get herd;

}
/// @nodoc
class _$LivestockDataCopyWithImpl<$Res>
    implements $LivestockDataCopyWith<$Res> {
  _$LivestockDataCopyWithImpl(this._self, this._then);

  final LivestockData _self;
  final $Res Function(LivestockData) _then;

/// Create a copy of LivestockData
/// with the given fields replaced by the non-null parameter values.
@pragma('vm:prefer-inline') @override $Res call({Object? rancher = freezed,Object? herd = freezed,Object? livestock = freezed,}) {
  return _then(_self.copyWith(
rancher: freezed == rancher ? _self.rancher : rancher // ignore: cast_nullable_to_non_nullable
as Rancher?,herd: freezed == herd ? _self.herd : herd // ignore: cast_nullable_to_non_nullable
as Herd?,livestock: freezed == livestock ? _self.livestock : livestock // ignore: cast_nullable_to_non_nullable
as List<Livestock>?,
  ));
}
/// Create a copy of LivestockData
/// with the given fields replaced by the non-null parameter values.
@override
@pragma('vm:prefer-inline')
$RancherCopyWith<$Res>? get rancher {
    if (_self.rancher == null) {
    return null;
  }

  return $RancherCopyWith<$Res>(_self.rancher!, (value) {
    return _then(_self.copyWith(rancher: value));
  });
}/// Create a copy of LivestockData
/// with the given fields replaced by the non-null parameter values.
@override
@pragma('vm:prefer-inline')
$HerdCopyWith<$Res>? get herd {
    if (_self.herd == null) {
    return null;
  }

  return $HerdCopyWith<$Res>(_self.herd!, (value) {
    return _then(_self.copyWith(herd: value));
  });
}
}


/// Adds pattern-matching-related methods to [LivestockData].
extension LivestockDataPatterns on LivestockData {
/// A variant of `map` that fallback to returning `orElse`.
///
/// It is equivalent to doing:
/// ```dart
/// switch (sealedClass) {
///   case final Subclass value:
///     return ...;
///   case _:
///     return orElse();
/// }
/// ```

@optionalTypeArgs TResult maybeMap<TResult extends Object?>(TResult Function( _LivestockData value)?  $default,{required TResult orElse(),}){
final _that = this;
switch (_that) {
case _LivestockData() when $default != null:
return $default(_that);case _:
  return orElse();

}
}
/// A `switch`-like method, using callbacks.
///
/// Callbacks receives the raw object, upcasted.
/// It is equivalent to doing:
/// ```dart
/// switch (sealedClass) {
///   case final Subclass value:
///     return ...;
///   case final Subclass2 value:
///     return ...;
/// }
/// ```

@optionalTypeArgs TResult map<TResult extends Object?>(TResult Function( _LivestockData value)  $default,){
final _that = this;
switch (_that) {
case _LivestockData():
return $default(_that);case _:
  throw StateError('Unexpected subclass');

}
}
/// A variant of `map` that fallback to returning `null`.
///
/// It is equivalent to doing:
/// ```dart
/// switch (sealedClass) {
///   case final Subclass value:
///     return ...;
///   case _:
///     return null;
/// }
/// ```

@optionalTypeArgs TResult? mapOrNull<TResult extends Object?>(TResult? Function( _LivestockData value)?  $default,){
final _that = this;
switch (_that) {
case _LivestockData() when $default != null:
return $default(_that);case _:
  return null;

}
}
/// A variant of `when` that fallback to an `orElse` callback.
///
/// It is equivalent to doing:
/// ```dart
/// switch (sealedClass) {
///   case Subclass(:final field):
///     return ...;
///   case _:
///     return orElse();
/// }
/// ```

@optionalTypeArgs TResult maybeWhen<TResult extends Object?>(TResult Function( Rancher? rancher,  Herd? herd,  List<Livestock>? livestock)?  $default,{required TResult orElse(),}) {final _that = this;
switch (_that) {
case _LivestockData() when $default != null:
return $default(_that.rancher,_that.herd,_that.livestock);case _:
  return orElse();

}
}
/// A `switch`-like method, using callbacks.
///
/// As opposed to `map`, this offers destructuring.
/// It is equivalent to doing:
/// ```dart
/// switch (sealedClass) {
///   case Subclass(:final field):
///     return ...;
///   case Subclass2(:final field2):
///     return ...;
/// }
/// ```

@optionalTypeArgs TResult when<TResult extends Object?>(TResult Function( Rancher? rancher,  Herd? herd,  List<Livestock>? livestock)  $default,) {final _that = this;
switch (_that) {
case _LivestockData():
return $default(_that.rancher,_that.herd,_that.livestock);case _:
  throw StateError('Unexpected subclass');

}
}
/// A variant of `when` that fallback to returning `null`
///
/// It is equivalent to doing:
/// ```dart
/// switch (sealedClass) {
///   case Subclass(:final field):
///     return ...;
///   case _:
///     return null;
/// }
/// ```

@optionalTypeArgs TResult? whenOrNull<TResult extends Object?>(TResult? Function( Rancher? rancher,  Herd? herd,  List<Livestock>? livestock)?  $default,) {final _that = this;
switch (_that) {
case _LivestockData() when $default != null:
return $default(_that.rancher,_that.herd,_that.livestock);case _:
  return null;

}
}

}

/// @nodoc
@JsonSerializable()

class _LivestockData implements LivestockData {
  const _LivestockData({this.rancher, this.herd, final  List<Livestock>? livestock}): _livestock = livestock;
  factory _LivestockData.fromJson(Map<String, dynamic> json) => _$LivestockDataFromJson(json);

@override final  Rancher? rancher;
@override final  Herd? herd;
 final  List<Livestock>? _livestock;
@override List<Livestock>? get livestock {
  final value = _livestock;
  if (value == null) return null;
  if (_livestock is EqualUnmodifiableListView) return _livestock;
  // ignore: implicit_dynamic_type
  return EqualUnmodifiableListView(value);
}


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

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

@override
bool operator ==(Object other) {
  return identical(this, other) || (other.runtimeType == runtimeType&&other is _LivestockData&&(identical(other.rancher, rancher) || other.rancher == rancher)&&(identical(other.herd, herd) || other.herd == herd)&&const DeepCollectionEquality().equals(other._livestock, _livestock));
}

@JsonKey(includeFromJson: false, includeToJson: false)
@override
int get hashCode => Object.hash(runtimeType,rancher,herd,const DeepCollectionEquality().hash(_livestock));

@override
String toString() {
  return 'LivestockData(rancher: $rancher, herd: $herd, livestock: $livestock)';
}


}

/// @nodoc
abstract mixin class _$LivestockDataCopyWith<$Res> implements $LivestockDataCopyWith<$Res> {
  factory _$LivestockDataCopyWith(_LivestockData value, $Res Function(_LivestockData) _then) = __$LivestockDataCopyWithImpl;
@override @useResult
$Res call({
 Rancher? rancher, Herd? herd, List<Livestock>? livestock
});


@override $RancherCopyWith<$Res>? get rancher;@override $HerdCopyWith<$Res>? get herd;

}
/// @nodoc
class __$LivestockDataCopyWithImpl<$Res>
    implements _$LivestockDataCopyWith<$Res> {
  __$LivestockDataCopyWithImpl(this._self, this._then);

  final _LivestockData _self;
  final $Res Function(_LivestockData) _then;

/// Create a copy of LivestockData
/// with the given fields replaced by the non-null parameter values.
@override @pragma('vm:prefer-inline') $Res call({Object? rancher = freezed,Object? herd = freezed,Object? livestock = freezed,}) {
  return _then(_LivestockData(
rancher: freezed == rancher ? _self.rancher : rancher // ignore: cast_nullable_to_non_nullable
as Rancher?,herd: freezed == herd ? _self.herd : herd // ignore: cast_nullable_to_non_nullable
as Herd?,livestock: freezed == livestock ? _self._livestock : livestock // ignore: cast_nullable_to_non_nullable
as List<Livestock>?,
  ));
}

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

  return $RancherCopyWith<$Res>(_self.rancher!, (value) {
    return _then(_self.copyWith(rancher: value));
  });
}/// Create a copy of LivestockData
/// with the given fields replaced by the non-null parameter values.
@override
@pragma('vm:prefer-inline')
$HerdCopyWith<$Res>? get herd {
    if (_self.herd == null) {
    return null;
  }

  return $HerdCopyWith<$Res>(_self.herd!, (value) {
    return _then(_self.copyWith(herd: value));
  });
}
}


/// @nodoc
mixin _$Rancher {

 String? get name; String? get phone; String? get image;
/// Create a copy of Rancher
/// with the given fields replaced by the non-null parameter values.
@JsonKey(includeFromJson: false, includeToJson: false)
@pragma('vm:prefer-inline')
$RancherCopyWith<Rancher> get copyWith => _$RancherCopyWithImpl<Rancher>(this as Rancher, _$identity);

  /// Serializes this Rancher to a JSON map.
  Map<String, dynamic> toJson();


@override
bool operator ==(Object other) {
  return identical(this, other) || (other.runtimeType == runtimeType&&other is Rancher&&(identical(other.name, name) || other.name == name)&&(identical(other.phone, phone) || other.phone == phone)&&(identical(other.image, image) || other.image == image));
}

@JsonKey(includeFromJson: false, includeToJson: false)
@override
int get hashCode => Object.hash(runtimeType,name,phone,image);

@override
String toString() {
  return 'Rancher(name: $name, phone: $phone, image: $image)';
}


}

/// @nodoc
abstract mixin class $RancherCopyWith<$Res>  {
  factory $RancherCopyWith(Rancher value, $Res Function(Rancher) _then) = _$RancherCopyWithImpl;
@useResult
$Res call({
 String? name, String? phone, String? image
});




}
/// @nodoc
class _$RancherCopyWithImpl<$Res>
    implements $RancherCopyWith<$Res> {
  _$RancherCopyWithImpl(this._self, this._then);

  final Rancher _self;
  final $Res Function(Rancher) _then;

/// Create a copy of Rancher
/// with the given fields replaced by the non-null parameter values.
@pragma('vm:prefer-inline') @override $Res call({Object? name = freezed,Object? phone = freezed,Object? image = freezed,}) {
  return _then(_self.copyWith(
name: freezed == name ? _self.name : name // ignore: cast_nullable_to_non_nullable
as String?,phone: freezed == phone ? _self.phone : phone // ignore: cast_nullable_to_non_nullable
as String?,image: freezed == image ? _self.image : image // ignore: cast_nullable_to_non_nullable
as String?,
  ));
}

}


/// Adds pattern-matching-related methods to [Rancher].
extension RancherPatterns on Rancher {
/// A variant of `map` that fallback to returning `orElse`.
///
/// It is equivalent to doing:
/// ```dart
/// switch (sealedClass) {
///   case final Subclass value:
///     return ...;
///   case _:
///     return orElse();
/// }
/// ```

@optionalTypeArgs TResult maybeMap<TResult extends Object?>(TResult Function( _Rancher value)?  $default,{required TResult orElse(),}){
final _that = this;
switch (_that) {
case _Rancher() when $default != null:
return $default(_that);case _:
  return orElse();

}
}
/// A `switch`-like method, using callbacks.
///
/// Callbacks receives the raw object, upcasted.
/// It is equivalent to doing:
/// ```dart
/// switch (sealedClass) {
///   case final Subclass value:
///     return ...;
///   case final Subclass2 value:
///     return ...;
/// }
/// ```

@optionalTypeArgs TResult map<TResult extends Object?>(TResult Function( _Rancher value)  $default,){
final _that = this;
switch (_that) {
case _Rancher():
return $default(_that);case _:
  throw StateError('Unexpected subclass');

}
}
/// A variant of `map` that fallback to returning `null`.
///
/// It is equivalent to doing:
/// ```dart
/// switch (sealedClass) {
///   case final Subclass value:
///     return ...;
///   case _:
///     return null;
/// }
/// ```

@optionalTypeArgs TResult? mapOrNull<TResult extends Object?>(TResult? Function( _Rancher value)?  $default,){
final _that = this;
switch (_that) {
case _Rancher() when $default != null:
return $default(_that);case _:
  return null;

}
}
/// A variant of `when` that fallback to an `orElse` callback.
///
/// It is equivalent to doing:
/// ```dart
/// switch (sealedClass) {
///   case Subclass(:final field):
///     return ...;
///   case _:
///     return orElse();
/// }
/// ```

@optionalTypeArgs TResult maybeWhen<TResult extends Object?>(TResult Function( String? name,  String? phone,  String? image)?  $default,{required TResult orElse(),}) {final _that = this;
switch (_that) {
case _Rancher() when $default != null:
return $default(_that.name,_that.phone,_that.image);case _:
  return orElse();

}
}
/// A `switch`-like method, using callbacks.
///
/// As opposed to `map`, this offers destructuring.
/// It is equivalent to doing:
/// ```dart
/// switch (sealedClass) {
///   case Subclass(:final field):
///     return ...;
///   case Subclass2(:final field2):
///     return ...;
/// }
/// ```

@optionalTypeArgs TResult when<TResult extends Object?>(TResult Function( String? name,  String? phone,  String? image)  $default,) {final _that = this;
switch (_that) {
case _Rancher():
return $default(_that.name,_that.phone,_that.image);case _:
  throw StateError('Unexpected subclass');

}
}
/// A variant of `when` that fallback to returning `null`
///
/// It is equivalent to doing:
/// ```dart
/// switch (sealedClass) {
///   case Subclass(:final field):
///     return ...;
///   case _:
///     return null;
/// }
/// ```

@optionalTypeArgs TResult? whenOrNull<TResult extends Object?>(TResult? Function( String? name,  String? phone,  String? image)?  $default,) {final _that = this;
switch (_that) {
case _Rancher() when $default != null:
return $default(_that.name,_that.phone,_that.image);case _:
  return null;

}
}

}

/// @nodoc
@JsonSerializable()

class _Rancher implements Rancher {
  const _Rancher({this.name, this.phone, this.image});
  factory _Rancher.fromJson(Map<String, dynamic> json) => _$RancherFromJson(json);

@override final  String? name;
@override final  String? phone;
@override final  String? image;

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

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

@override
bool operator ==(Object other) {
  return identical(this, other) || (other.runtimeType == runtimeType&&other is _Rancher&&(identical(other.name, name) || other.name == name)&&(identical(other.phone, phone) || other.phone == phone)&&(identical(other.image, image) || other.image == image));
}

@JsonKey(includeFromJson: false, includeToJson: false)
@override
int get hashCode => Object.hash(runtimeType,name,phone,image);

@override
String toString() {
  return 'Rancher(name: $name, phone: $phone, image: $image)';
}


}

/// @nodoc
abstract mixin class _$RancherCopyWith<$Res> implements $RancherCopyWith<$Res> {
  factory _$RancherCopyWith(_Rancher value, $Res Function(_Rancher) _then) = __$RancherCopyWithImpl;
@override @useResult
$Res call({
 String? name, String? phone, String? image
});




}
/// @nodoc
class __$RancherCopyWithImpl<$Res>
    implements _$RancherCopyWith<$Res> {
  __$RancherCopyWithImpl(this._self, this._then);

  final _Rancher _self;
  final $Res Function(_Rancher) _then;

/// Create a copy of Rancher
/// with the given fields replaced by the non-null parameter values.
@override @pragma('vm:prefer-inline') $Res call({Object? name = freezed,Object? phone = freezed,Object? image = freezed,}) {
  return _then(_Rancher(
name: freezed == name ? _self.name : name // ignore: cast_nullable_to_non_nullable
as String?,phone: freezed == phone ? _self.phone : phone // ignore: cast_nullable_to_non_nullable
as String?,image: freezed == image ? _self.image : image // ignore: cast_nullable_to_non_nullable
as String?,
  ));
}


}


/// @nodoc
mixin _$Herd {

 Location? get location; String? get address; String? get image;
/// Create a copy of Herd
/// with the given fields replaced by the non-null parameter values.
@JsonKey(includeFromJson: false, includeToJson: false)
@pragma('vm:prefer-inline')
$HerdCopyWith<Herd> get copyWith => _$HerdCopyWithImpl<Herd>(this as Herd, _$identity);

  /// Serializes this Herd to a JSON map.
  Map<String, dynamic> toJson();


@override
bool operator ==(Object other) {
  return identical(this, other) || (other.runtimeType == runtimeType&&other is Herd&&(identical(other.location, location) || other.location == location)&&(identical(other.address, address) || other.address == address)&&(identical(other.image, image) || other.image == image));
}

@JsonKey(includeFromJson: false, includeToJson: false)
@override
int get hashCode => Object.hash(runtimeType,location,address,image);

@override
String toString() {
  return 'Herd(location: $location, address: $address, image: $image)';
}


}

/// @nodoc
abstract mixin class $HerdCopyWith<$Res>  {
  factory $HerdCopyWith(Herd value, $Res Function(Herd) _then) = _$HerdCopyWithImpl;
@useResult
$Res call({
 Location? location, String? address, String? image
});


$LocationCopyWith<$Res>? get location;

}
/// @nodoc
class _$HerdCopyWithImpl<$Res>
    implements $HerdCopyWith<$Res> {
  _$HerdCopyWithImpl(this._self, this._then);

  final Herd _self;
  final $Res Function(Herd) _then;

/// Create a copy of Herd
/// with the given fields replaced by the non-null parameter values.
@pragma('vm:prefer-inline') @override $Res call({Object? location = freezed,Object? address = freezed,Object? image = freezed,}) {
  return _then(_self.copyWith(
location: freezed == location ? _self.location : location // ignore: cast_nullable_to_non_nullable
as Location?,address: freezed == address ? _self.address : address // ignore: cast_nullable_to_non_nullable
as String?,image: freezed == image ? _self.image : image // ignore: cast_nullable_to_non_nullable
as String?,
  ));
}
/// Create a copy of Herd
/// with the given fields replaced by the non-null parameter values.
@override
@pragma('vm:prefer-inline')
$LocationCopyWith<$Res>? get location {
    if (_self.location == null) {
    return null;
  }

  return $LocationCopyWith<$Res>(_self.location!, (value) {
    return _then(_self.copyWith(location: value));
  });
}
}


/// Adds pattern-matching-related methods to [Herd].
extension HerdPatterns on Herd {
/// A variant of `map` that fallback to returning `orElse`.
///
/// It is equivalent to doing:
/// ```dart
/// switch (sealedClass) {
///   case final Subclass value:
///     return ...;
///   case _:
///     return orElse();
/// }
/// ```

@optionalTypeArgs TResult maybeMap<TResult extends Object?>(TResult Function( _Herd value)?  $default,{required TResult orElse(),}){
final _that = this;
switch (_that) {
case _Herd() when $default != null:
return $default(_that);case _:
  return orElse();

}
}
/// A `switch`-like method, using callbacks.
///
/// Callbacks receives the raw object, upcasted.
/// It is equivalent to doing:
/// ```dart
/// switch (sealedClass) {
///   case final Subclass value:
///     return ...;
///   case final Subclass2 value:
///     return ...;
/// }
/// ```

@optionalTypeArgs TResult map<TResult extends Object?>(TResult Function( _Herd value)  $default,){
final _that = this;
switch (_that) {
case _Herd():
return $default(_that);case _:
  throw StateError('Unexpected subclass');

}
}
/// A variant of `map` that fallback to returning `null`.
///
/// It is equivalent to doing:
/// ```dart
/// switch (sealedClass) {
///   case final Subclass value:
///     return ...;
///   case _:
///     return null;
/// }
/// ```

@optionalTypeArgs TResult? mapOrNull<TResult extends Object?>(TResult? Function( _Herd value)?  $default,){
final _that = this;
switch (_that) {
case _Herd() when $default != null:
return $default(_that);case _:
  return null;

}
}
/// A variant of `when` that fallback to an `orElse` callback.
///
/// It is equivalent to doing:
/// ```dart
/// switch (sealedClass) {
///   case Subclass(:final field):
///     return ...;
///   case _:
///     return orElse();
/// }
/// ```

@optionalTypeArgs TResult maybeWhen<TResult extends Object?>(TResult Function( Location? location,  String? address,  String? image)?  $default,{required TResult orElse(),}) {final _that = this;
switch (_that) {
case _Herd() when $default != null:
return $default(_that.location,_that.address,_that.image);case _:
  return orElse();

}
}
/// A `switch`-like method, using callbacks.
///
/// As opposed to `map`, this offers destructuring.
/// It is equivalent to doing:
/// ```dart
/// switch (sealedClass) {
///   case Subclass(:final field):
///     return ...;
///   case Subclass2(:final field2):
///     return ...;
/// }
/// ```

@optionalTypeArgs TResult when<TResult extends Object?>(TResult Function( Location? location,  String? address,  String? image)  $default,) {final _that = this;
switch (_that) {
case _Herd():
return $default(_that.location,_that.address,_that.image);case _:
  throw StateError('Unexpected subclass');

}
}
/// A variant of `when` that fallback to returning `null`
///
/// It is equivalent to doing:
/// ```dart
/// switch (sealedClass) {
///   case Subclass(:final field):
///     return ...;
///   case _:
///     return null;
/// }
/// ```

@optionalTypeArgs TResult? whenOrNull<TResult extends Object?>(TResult? Function( Location? location,  String? address,  String? image)?  $default,) {final _that = this;
switch (_that) {
case _Herd() when $default != null:
return $default(_that.location,_that.address,_that.image);case _:
  return null;

}
}

}

/// @nodoc
@JsonSerializable()

class _Herd implements Herd {
  const _Herd({this.location, this.address, this.image});
  factory _Herd.fromJson(Map<String, dynamic> json) => _$HerdFromJson(json);

@override final  Location? location;
@override final  String? address;
@override final  String? image;

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

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

@override
bool operator ==(Object other) {
  return identical(this, other) || (other.runtimeType == runtimeType&&other is _Herd&&(identical(other.location, location) || other.location == location)&&(identical(other.address, address) || other.address == address)&&(identical(other.image, image) || other.image == image));
}

@JsonKey(includeFromJson: false, includeToJson: false)
@override
int get hashCode => Object.hash(runtimeType,location,address,image);

@override
String toString() {
  return 'Herd(location: $location, address: $address, image: $image)';
}


}

/// @nodoc
abstract mixin class _$HerdCopyWith<$Res> implements $HerdCopyWith<$Res> {
  factory _$HerdCopyWith(_Herd value, $Res Function(_Herd) _then) = __$HerdCopyWithImpl;
@override @useResult
$Res call({
 Location? location, String? address, String? image
});


@override $LocationCopyWith<$Res>? get location;

}
/// @nodoc
class __$HerdCopyWithImpl<$Res>
    implements _$HerdCopyWith<$Res> {
  __$HerdCopyWithImpl(this._self, this._then);

  final _Herd _self;
  final $Res Function(_Herd) _then;

/// Create a copy of Herd
/// with the given fields replaced by the non-null parameter values.
@override @pragma('vm:prefer-inline') $Res call({Object? location = freezed,Object? address = freezed,Object? image = freezed,}) {
  return _then(_Herd(
location: freezed == location ? _self.location : location // ignore: cast_nullable_to_non_nullable
as Location?,address: freezed == address ? _self.address : address // ignore: cast_nullable_to_non_nullable
as String?,image: freezed == image ? _self.image : image // ignore: cast_nullable_to_non_nullable
as String?,
  ));
}

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

  return $LocationCopyWith<$Res>(_self.location!, (value) {
    return _then(_self.copyWith(location: value));
  });
}
}


/// @nodoc
mixin _$Location {

 double? get lat; double? get lng;
/// Create a copy of Location
/// with the given fields replaced by the non-null parameter values.
@JsonKey(includeFromJson: false, includeToJson: false)
@pragma('vm:prefer-inline')
$LocationCopyWith<Location> get copyWith => _$LocationCopyWithImpl<Location>(this as Location, _$identity);

  /// Serializes this Location to a JSON map.
  Map<String, dynamic> toJson();


@override
bool operator ==(Object other) {
  return identical(this, other) || (other.runtimeType == runtimeType&&other is Location&&(identical(other.lat, lat) || other.lat == lat)&&(identical(other.lng, lng) || other.lng == lng));
}

@JsonKey(includeFromJson: false, includeToJson: false)
@override
int get hashCode => Object.hash(runtimeType,lat,lng);

@override
String toString() {
  return 'Location(lat: $lat, lng: $lng)';
}


}

/// @nodoc
abstract mixin class $LocationCopyWith<$Res>  {
  factory $LocationCopyWith(Location value, $Res Function(Location) _then) = _$LocationCopyWithImpl;
@useResult
$Res call({
 double? lat, double? lng
});




}
/// @nodoc
class _$LocationCopyWithImpl<$Res>
    implements $LocationCopyWith<$Res> {
  _$LocationCopyWithImpl(this._self, this._then);

  final Location _self;
  final $Res Function(Location) _then;

/// Create a copy of Location
/// with the given fields replaced by the non-null parameter values.
@pragma('vm:prefer-inline') @override $Res call({Object? lat = freezed,Object? lng = freezed,}) {
  return _then(_self.copyWith(
lat: freezed == lat ? _self.lat : lat // ignore: cast_nullable_to_non_nullable
as double?,lng: freezed == lng ? _self.lng : lng // ignore: cast_nullable_to_non_nullable
as double?,
  ));
}

}


/// Adds pattern-matching-related methods to [Location].
extension LocationPatterns on Location {
/// A variant of `map` that fallback to returning `orElse`.
///
/// It is equivalent to doing:
/// ```dart
/// switch (sealedClass) {
///   case final Subclass value:
///     return ...;
///   case _:
///     return orElse();
/// }
/// ```

@optionalTypeArgs TResult maybeMap<TResult extends Object?>(TResult Function( _Location value)?  $default,{required TResult orElse(),}){
final _that = this;
switch (_that) {
case _Location() when $default != null:
return $default(_that);case _:
  return orElse();

}
}
/// A `switch`-like method, using callbacks.
///
/// Callbacks receives the raw object, upcasted.
/// It is equivalent to doing:
/// ```dart
/// switch (sealedClass) {
///   case final Subclass value:
///     return ...;
///   case final Subclass2 value:
///     return ...;
/// }
/// ```

@optionalTypeArgs TResult map<TResult extends Object?>(TResult Function( _Location value)  $default,){
final _that = this;
switch (_that) {
case _Location():
return $default(_that);case _:
  throw StateError('Unexpected subclass');

}
}
/// A variant of `map` that fallback to returning `null`.
///
/// It is equivalent to doing:
/// ```dart
/// switch (sealedClass) {
///   case final Subclass value:
///     return ...;
///   case _:
///     return null;
/// }
/// ```

@optionalTypeArgs TResult? mapOrNull<TResult extends Object?>(TResult? Function( _Location value)?  $default,){
final _that = this;
switch (_that) {
case _Location() when $default != null:
return $default(_that);case _:
  return null;

}
}
/// A variant of `when` that fallback to an `orElse` callback.
///
/// It is equivalent to doing:
/// ```dart
/// switch (sealedClass) {
///   case Subclass(:final field):
///     return ...;
///   case _:
///     return orElse();
/// }
/// ```

@optionalTypeArgs TResult maybeWhen<TResult extends Object?>(TResult Function( double? lat,  double? lng)?  $default,{required TResult orElse(),}) {final _that = this;
switch (_that) {
case _Location() when $default != null:
return $default(_that.lat,_that.lng);case _:
  return orElse();

}
}
/// A `switch`-like method, using callbacks.
///
/// As opposed to `map`, this offers destructuring.
/// It is equivalent to doing:
/// ```dart
/// switch (sealedClass) {
///   case Subclass(:final field):
///     return ...;
///   case Subclass2(:final field2):
///     return ...;
/// }
/// ```

@optionalTypeArgs TResult when<TResult extends Object?>(TResult Function( double? lat,  double? lng)  $default,) {final _that = this;
switch (_that) {
case _Location():
return $default(_that.lat,_that.lng);case _:
  throw StateError('Unexpected subclass');

}
}
/// A variant of `when` that fallback to returning `null`
///
/// It is equivalent to doing:
/// ```dart
/// switch (sealedClass) {
///   case Subclass(:final field):
///     return ...;
///   case _:
///     return null;
/// }
/// ```

@optionalTypeArgs TResult? whenOrNull<TResult extends Object?>(TResult? Function( double? lat,  double? lng)?  $default,) {final _that = this;
switch (_that) {
case _Location() when $default != null:
return $default(_that.lat,_that.lng);case _:
  return null;

}
}

}

/// @nodoc
@JsonSerializable()

class _Location implements Location {
  const _Location({this.lat, this.lng});
  factory _Location.fromJson(Map<String, dynamic> json) => _$LocationFromJson(json);

@override final  double? lat;
@override final  double? lng;

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

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

@override
bool operator ==(Object other) {
  return identical(this, other) || (other.runtimeType == runtimeType&&other is _Location&&(identical(other.lat, lat) || other.lat == lat)&&(identical(other.lng, lng) || other.lng == lng));
}

@JsonKey(includeFromJson: false, includeToJson: false)
@override
int get hashCode => Object.hash(runtimeType,lat,lng);

@override
String toString() {
  return 'Location(lat: $lat, lng: $lng)';
}


}

/// @nodoc
abstract mixin class _$LocationCopyWith<$Res> implements $LocationCopyWith<$Res> {
  factory _$LocationCopyWith(_Location value, $Res Function(_Location) _then) = __$LocationCopyWithImpl;
@override @useResult
$Res call({
 double? lat, double? lng
});




}
/// @nodoc
class __$LocationCopyWithImpl<$Res>
    implements _$LocationCopyWith<$Res> {
  __$LocationCopyWithImpl(this._self, this._then);

  final _Location _self;
  final $Res Function(_Location) _then;

/// Create a copy of Location
/// with the given fields replaced by the non-null parameter values.
@override @pragma('vm:prefer-inline') $Res call({Object? lat = freezed,Object? lng = freezed,}) {
  return _then(_Location(
lat: freezed == lat ? _self.lat : lat // ignore: cast_nullable_to_non_nullable
as double?,lng: freezed == lng ? _self.lng : lng // ignore: cast_nullable_to_non_nullable
as double?,
  ));
}


}


/// @nodoc
mixin _$Livestock {

 String? get species; String? get breed; String? get dateOfBirth; String? get sex; String? get motherTag; String? get fatherTag; String? get tagNumber; String? get tagType; String? get image;
/// Create a copy of Livestock
/// with the given fields replaced by the non-null parameter values.
@JsonKey(includeFromJson: false, includeToJson: false)
@pragma('vm:prefer-inline')
$LivestockCopyWith<Livestock> get copyWith => _$LivestockCopyWithImpl<Livestock>(this as Livestock, _$identity);

  /// Serializes this Livestock to a JSON map.
  Map<String, dynamic> toJson();


@override
bool operator ==(Object other) {
  return identical(this, other) || (other.runtimeType == runtimeType&&other is Livestock&&(identical(other.species, species) || other.species == species)&&(identical(other.breed, breed) || other.breed == breed)&&(identical(other.dateOfBirth, dateOfBirth) || other.dateOfBirth == dateOfBirth)&&(identical(other.sex, sex) || other.sex == sex)&&(identical(other.motherTag, motherTag) || other.motherTag == motherTag)&&(identical(other.fatherTag, fatherTag) || other.fatherTag == fatherTag)&&(identical(other.tagNumber, tagNumber) || other.tagNumber == tagNumber)&&(identical(other.tagType, tagType) || other.tagType == tagType)&&(identical(other.image, image) || other.image == image));
}

@JsonKey(includeFromJson: false, includeToJson: false)
@override
int get hashCode => Object.hash(runtimeType,species,breed,dateOfBirth,sex,motherTag,fatherTag,tagNumber,tagType,image);

@override
String toString() {
  return 'Livestock(species: $species, breed: $breed, dateOfBirth: $dateOfBirth, sex: $sex, motherTag: $motherTag, fatherTag: $fatherTag, tagNumber: $tagNumber, tagType: $tagType, image: $image)';
}


}

/// @nodoc
abstract mixin class $LivestockCopyWith<$Res>  {
  factory $LivestockCopyWith(Livestock value, $Res Function(Livestock) _then) = _$LivestockCopyWithImpl;
@useResult
$Res call({
 String? species, String? breed, String? dateOfBirth, String? sex, String? motherTag, String? fatherTag, String? tagNumber, String? tagType, String? image
});




}
/// @nodoc
class _$LivestockCopyWithImpl<$Res>
    implements $LivestockCopyWith<$Res> {
  _$LivestockCopyWithImpl(this._self, this._then);

  final Livestock _self;
  final $Res Function(Livestock) _then;

/// Create a copy of Livestock
/// with the given fields replaced by the non-null parameter values.
@pragma('vm:prefer-inline') @override $Res call({Object? species = freezed,Object? breed = freezed,Object? dateOfBirth = freezed,Object? sex = freezed,Object? motherTag = freezed,Object? fatherTag = freezed,Object? tagNumber = freezed,Object? tagType = freezed,Object? image = freezed,}) {
  return _then(_self.copyWith(
species: freezed == species ? _self.species : species // ignore: cast_nullable_to_non_nullable
as String?,breed: freezed == breed ? _self.breed : breed // ignore: cast_nullable_to_non_nullable
as String?,dateOfBirth: freezed == dateOfBirth ? _self.dateOfBirth : dateOfBirth // ignore: cast_nullable_to_non_nullable
as String?,sex: freezed == sex ? _self.sex : sex // ignore: cast_nullable_to_non_nullable
as String?,motherTag: freezed == motherTag ? _self.motherTag : motherTag // ignore: cast_nullable_to_non_nullable
as String?,fatherTag: freezed == fatherTag ? _self.fatherTag : fatherTag // ignore: cast_nullable_to_non_nullable
as String?,tagNumber: freezed == tagNumber ? _self.tagNumber : tagNumber // ignore: cast_nullable_to_non_nullable
as String?,tagType: freezed == tagType ? _self.tagType : tagType // ignore: cast_nullable_to_non_nullable
as String?,image: freezed == image ? _self.image : image // ignore: cast_nullable_to_non_nullable
as String?,
  ));
}

}


/// Adds pattern-matching-related methods to [Livestock].
extension LivestockPatterns on Livestock {
/// A variant of `map` that fallback to returning `orElse`.
///
/// It is equivalent to doing:
/// ```dart
/// switch (sealedClass) {
///   case final Subclass value:
///     return ...;
///   case _:
///     return orElse();
/// }
/// ```

@optionalTypeArgs TResult maybeMap<TResult extends Object?>(TResult Function( _Livestock value)?  $default,{required TResult orElse(),}){
final _that = this;
switch (_that) {
case _Livestock() when $default != null:
return $default(_that);case _:
  return orElse();

}
}
/// A `switch`-like method, using callbacks.
///
/// Callbacks receives the raw object, upcasted.
/// It is equivalent to doing:
/// ```dart
/// switch (sealedClass) {
///   case final Subclass value:
///     return ...;
///   case final Subclass2 value:
///     return ...;
/// }
/// ```

@optionalTypeArgs TResult map<TResult extends Object?>(TResult Function( _Livestock value)  $default,){
final _that = this;
switch (_that) {
case _Livestock():
return $default(_that);case _:
  throw StateError('Unexpected subclass');

}
}
/// A variant of `map` that fallback to returning `null`.
///
/// It is equivalent to doing:
/// ```dart
/// switch (sealedClass) {
///   case final Subclass value:
///     return ...;
///   case _:
///     return null;
/// }
/// ```

@optionalTypeArgs TResult? mapOrNull<TResult extends Object?>(TResult? Function( _Livestock value)?  $default,){
final _that = this;
switch (_that) {
case _Livestock() when $default != null:
return $default(_that);case _:
  return null;

}
}
/// A variant of `when` that fallback to an `orElse` callback.
///
/// It is equivalent to doing:
/// ```dart
/// switch (sealedClass) {
///   case Subclass(:final field):
///     return ...;
///   case _:
///     return orElse();
/// }
/// ```

@optionalTypeArgs TResult maybeWhen<TResult extends Object?>(TResult Function( String? species,  String? breed,  String? dateOfBirth,  String? sex,  String? motherTag,  String? fatherTag,  String? tagNumber,  String? tagType,  String? image)?  $default,{required TResult orElse(),}) {final _that = this;
switch (_that) {
case _Livestock() when $default != null:
return $default(_that.species,_that.breed,_that.dateOfBirth,_that.sex,_that.motherTag,_that.fatherTag,_that.tagNumber,_that.tagType,_that.image);case _:
  return orElse();

}
}
/// A `switch`-like method, using callbacks.
///
/// As opposed to `map`, this offers destructuring.
/// It is equivalent to doing:
/// ```dart
/// switch (sealedClass) {
///   case Subclass(:final field):
///     return ...;
///   case Subclass2(:final field2):
///     return ...;
/// }
/// ```

@optionalTypeArgs TResult when<TResult extends Object?>(TResult Function( String? species,  String? breed,  String? dateOfBirth,  String? sex,  String? motherTag,  String? fatherTag,  String? tagNumber,  String? tagType,  String? image)  $default,) {final _that = this;
switch (_that) {
case _Livestock():
return $default(_that.species,_that.breed,_that.dateOfBirth,_that.sex,_that.motherTag,_that.fatherTag,_that.tagNumber,_that.tagType,_that.image);case _:
  throw StateError('Unexpected subclass');

}
}
/// A variant of `when` that fallback to returning `null`
///
/// It is equivalent to doing:
/// ```dart
/// switch (sealedClass) {
///   case Subclass(:final field):
///     return ...;
///   case _:
///     return null;
/// }
/// ```

@optionalTypeArgs TResult? whenOrNull<TResult extends Object?>(TResult? Function( String? species,  String? breed,  String? dateOfBirth,  String? sex,  String? motherTag,  String? fatherTag,  String? tagNumber,  String? tagType,  String? image)?  $default,) {final _that = this;
switch (_that) {
case _Livestock() when $default != null:
return $default(_that.species,_that.breed,_that.dateOfBirth,_that.sex,_that.motherTag,_that.fatherTag,_that.tagNumber,_that.tagType,_that.image);case _:
  return null;

}
}

}

/// @nodoc
@JsonSerializable()

class _Livestock implements Livestock {
  const _Livestock({this.species, this.breed, this.dateOfBirth, this.sex, this.motherTag, this.fatherTag, this.tagNumber, this.tagType, this.image});
  factory _Livestock.fromJson(Map<String, dynamic> json) => _$LivestockFromJson(json);

@override final  String? species;
@override final  String? breed;
@override final  String? dateOfBirth;
@override final  String? sex;
@override final  String? motherTag;
@override final  String? fatherTag;
@override final  String? tagNumber;
@override final  String? tagType;
@override final  String? image;

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

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

@override
bool operator ==(Object other) {
  return identical(this, other) || (other.runtimeType == runtimeType&&other is _Livestock&&(identical(other.species, species) || other.species == species)&&(identical(other.breed, breed) || other.breed == breed)&&(identical(other.dateOfBirth, dateOfBirth) || other.dateOfBirth == dateOfBirth)&&(identical(other.sex, sex) || other.sex == sex)&&(identical(other.motherTag, motherTag) || other.motherTag == motherTag)&&(identical(other.fatherTag, fatherTag) || other.fatherTag == fatherTag)&&(identical(other.tagNumber, tagNumber) || other.tagNumber == tagNumber)&&(identical(other.tagType, tagType) || other.tagType == tagType)&&(identical(other.image, image) || other.image == image));
}

@JsonKey(includeFromJson: false, includeToJson: false)
@override
int get hashCode => Object.hash(runtimeType,species,breed,dateOfBirth,sex,motherTag,fatherTag,tagNumber,tagType,image);

@override
String toString() {
  return 'Livestock(species: $species, breed: $breed, dateOfBirth: $dateOfBirth, sex: $sex, motherTag: $motherTag, fatherTag: $fatherTag, tagNumber: $tagNumber, tagType: $tagType, image: $image)';
}


}

/// @nodoc
abstract mixin class _$LivestockCopyWith<$Res> implements $LivestockCopyWith<$Res> {
  factory _$LivestockCopyWith(_Livestock value, $Res Function(_Livestock) _then) = __$LivestockCopyWithImpl;
@override @useResult
$Res call({
 String? species, String? breed, String? dateOfBirth, String? sex, String? motherTag, String? fatherTag, String? tagNumber, String? tagType, String? image
});




}
/// @nodoc
class __$LivestockCopyWithImpl<$Res>
    implements _$LivestockCopyWith<$Res> {
  __$LivestockCopyWithImpl(this._self, this._then);

  final _Livestock _self;
  final $Res Function(_Livestock) _then;

/// Create a copy of Livestock
/// with the given fields replaced by the non-null parameter values.
@override @pragma('vm:prefer-inline') $Res call({Object? species = freezed,Object? breed = freezed,Object? dateOfBirth = freezed,Object? sex = freezed,Object? motherTag = freezed,Object? fatherTag = freezed,Object? tagNumber = freezed,Object? tagType = freezed,Object? image = freezed,}) {
  return _then(_Livestock(
species: freezed == species ? _self.species : species // ignore: cast_nullable_to_non_nullable
as String?,breed: freezed == breed ? _self.breed : breed // ignore: cast_nullable_to_non_nullable
as String?,dateOfBirth: freezed == dateOfBirth ? _self.dateOfBirth : dateOfBirth // ignore: cast_nullable_to_non_nullable
as String?,sex: freezed == sex ? _self.sex : sex // ignore: cast_nullable_to_non_nullable
as String?,motherTag: freezed == motherTag ? _self.motherTag : motherTag // ignore: cast_nullable_to_non_nullable
as String?,fatherTag: freezed == fatherTag ? _self.fatherTag : fatherTag // ignore: cast_nullable_to_non_nullable
as String?,tagNumber: freezed == tagNumber ? _self.tagNumber : tagNumber // ignore: cast_nullable_to_non_nullable
as String?,tagType: freezed == tagType ? _self.tagType : tagType // ignore: cast_nullable_to_non_nullable
as String?,image: freezed == image ? _self.image : image // ignore: cast_nullable_to_non_nullable
as String?,
  ));
}


}

// dart format on
