RouteBase get $setRoute => GoRouteData.$route(
path: '/set-route',
factory: _$SetRoute._fromState,
);
mixin _$SetRoute on GoRouteData {
static SetRoute _fromState(GoRouterState state) => SetRoute(
ids: (state.uri.queryParametersAll['ids']
?.map(int.parse)
.cast<int>()
?.toSet() as Set<int>)
?.toSet() ??
const {},
nullableIds: (state.uri.queryParametersAll['nullable-ids']
?.map(int.parse)
.cast<int>()
?.toSet() as Set<int>?)
?.toSet(),
idsWithDefaultValue: (state
.uri.queryParametersAll['ids-with-default-value']
?.map(int.parse)
.cast<int>()
?.toSet() as Set<int>?)
?.toSet() ??
const <int>{0},
);
SetRoute get _self => this as SetRoute;
@override
String get location => GoRouteData.$location(
'/set-route',
queryParams: {
'ids': _self.ids.map((e) => e.toString()).toList(),
if (_self.nullableIds != null)
'nullable-ids':
_self.nullableIds?.map((e) => e.toString()).toList(),
if (!_$iterablesEqual(_self.idsWithDefaultValue, const <int>{0}))
'ids-with-default-value':
_self.idsWithDefaultValue.map((e) => e.toString()).toList(),
},
);
@override
void go(BuildContext context) => context.go(location);
@override
Future<T?> push<T>(BuildContext context) => context.push<T>(location);
@override
void pushReplacement(BuildContext context) =>
context.pushReplacement(location);
@override
void replace(BuildContext context) => context.replace(location);
}
bool _$iterablesEqual<T>(Iterable<T>? iterable1, Iterable<T>? iterable2) {
if (identical(iterable1, iterable2)) return true;
if (iterable1 == null || iterable2 == null) return false;
final iterator1 = iterable1.iterator;
final iterator2 = iterable2.iterator;
while (true) {
final hasNext1 = iterator1.moveNext();
final hasNext2 = iterator2.moveNext();
if (hasNext1 != hasNext2) return false;
if (!hasNext1) return true;
if (iterator1.current != iterator2.current) return false;
}
}