splitGenericParts static method
Splits comma-separated generic parameters while handling nested generics.
Parameters:
content
: The generic parameters string to split
Returns:
- List of individual generic parameter strings
- Preserves nested generic structures
Example:
final parts = GenericTypeParser.splitGenericParts('String, List<int>, Map<String, int>');
print(parts); // ['String', 'List<int>', 'Map<String, int>']
Implementation
static List<String> splitGenericParts(String content) {
if (content.isEmpty) return [];
final parts = <String>[];
var current = '';
var depth = 0;
for (var i = 0; i < content.length; i++) {
final char = content[i];
if (char == '<') {
depth++;
} else if (char == '>') {
depth--;
} else if (char == ',' && depth == 0) {
parts.add(current.trim());
current = '';
continue;
}
current += char;
}
if (current.trim().isNotEmpty) {
parts.add(current.trim());
}
return parts;
}