replaceCodeUnits function

List<int> replaceCodeUnits(
  1. List<int> codeUnits
)

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;
}