Utf16BytesToCodeUnitsDecoder constructor

Utf16BytesToCodeUnitsDecoder(
  1. List<int> utf16EncodedBytes, [
  2. int offset = 0,
  3. int? length,
  4. int replacementCodepoint = unicodeReplacementCharacterCodepoint,
])

create Utf16BytesToCodeUnitsDecoder

Implementation

factory Utf16BytesToCodeUnitsDecoder(
  List<int> utf16EncodedBytes, [
  int offset = 0,
  int? length,
  int replacementCodepoint = unicodeReplacementCharacterCodepoint,
]) {
  length ??= utf16EncodedBytes.length - offset;
  if (hasUtf16BeBom(utf16EncodedBytes, offset, length)) {
    return Utf16beBytesToCodeUnitsDecoder(utf16EncodedBytes, offset + 2,
        length - 2, false, replacementCodepoint);
  } else if (hasUtf16LeBom(utf16EncodedBytes, offset, length)) {
    return Utf16leBytesToCodeUnitsDecoder(utf16EncodedBytes, offset + 2,
        length - 2, false, replacementCodepoint);
  } else {
    return Utf16beBytesToCodeUnitsDecoder(
        utf16EncodedBytes, offset, length, false, replacementCodepoint);
  }
}