allocate method
Implementation
String allocate([String name = '']) {
var id = _names[name];
id ??= 0;
var id2 = id;
var result = '';
final endsWithDigit =
name.isNotEmpty && isDigit(name.codeUnitAt(name.length - 1));
while (true) {
result = endsWithDigit ? '$prefix${name}_$id' : '$prefix$name$id';
if (_inUse.add(result)) {
break;
}
id2++;
}
_names[name] = id2 + 1;
return result;
}