CodePageDecoder _createDecoder()

in lib/src/codepage.dart [256:277]


CodePageDecoder _createDecoder(String characters) {
  var result = Uint32List(256);
  var i = 0;
  var allChars = 0;
  for (var char in characters.runes) {
    if (i >= 256) {
      throw ArgumentError.value(
          characters, "characters", "Must contain 256 characters");
    }
    result[i] = char;
    allChars |= char;
  }
  if (i < 256) {
    throw ArgumentError.value(
        characters, "characters", "Must contain 256 characters");
  }
  if (allChars <= 0xFFFF) {
    // It's in the BMP.
    return _BmpCodePageDecoder(characters);
  }
  return _NonBmpCodePageDecoder._(result);
}