matches method
If this route definition matches a RouteSettings object
Implementation
@override
bool matches(RouteSettings settings) {
final url = Uri.tryParse(settings.name!);
if (url == null) return false;
if (url.pathSegments.isEmpty) {
return false;
}
if (url.pathSegments.length > routes.length) return false;
for (var i = 0; i < url.pathSegments.length; i++) {
var hasMatchAtLevel = false;
final part = url.pathSegments[i];
for (final matcher in routes[i]) {
if (matcher.matches(RouteSettings(name: '/$part'))) {
hasMatchAtLevel = true;
}
}
if (!hasMatchAtLevel) {
return false;
}
}
return true;
}