match method
Match request URL against template Return path parameters if match, otherwise null
Implementation
Map<String, String>? match(String url) {
final uri = Uri.parse(url);
final segments = uri.pathSegments;
final templateSegments = template
.split('/')
.where((s) => s.isNotEmpty)
.toList();
if (segments.length != templateSegments.length) return null;
final params = <String, String>{};
for (var i = 0; i < templateSegments.length; i++) {
final seg = templateSegments[i];
if (seg.startsWith(':')) {
// path param
final key = seg.substring(1);
params[key] = segments[i];
} else if (seg != segments[i]) {
// literal mismatch
return null;
}
}
return params;
}