replaceCodeUnits function
Replaces list of code units to a simplified list. The length of the result list may differ from the source.
Implementation
List<int> replaceCodeUnits(List<int> codeUnits) {
_initIfRequired();
final result = <int>[];
for (var original in codeUnits) {
// Combining Diacritical Marks in Unicode
if (original >= 0x0300 && original <= 0x036F) {
continue;
}
// single-unit replacements
final single = _singleUnit[original];
if (single != null) {
result.add(single);
continue;
}
// multi-unit replacements
final multiple = _multiUnit[original];
if (multiple != null) {
result.addAll(multiple);
continue;
}
// no replacement
result.add(original);
}
return result;
}