convert method

  1. @override
Uint8List convert(
  1. String input
)
override

Converts input and returns the result of the conversion.

Implementation

@override
Uint8List convert(String input) {
  if (input.isEmpty) {
    return Uint8List(0);
  }
  if (input.startsWith('0x')) {
    input = input.substring(2);
  }
  String data = input.toUpperCase();
  if (data.length % 2 != 0) {
    data = "${_alphabet[0]}$data";
  }
  final result = Uint8List(data.length ~/ 2);
  for (int i = 0; i < result.length; i++) {
    final firstDigit = _alphabet.indexOf(data[i * 2]);
    final secondDigit = _alphabet.indexOf(data[i * 2 + 1]);
    if (firstDigit == -1 || secondDigit == -1) {
      throw FormatException("Non-hex character detected in $data");
    }
    result[i] = (firstDigit << 4) + secondDigit;
  }
  return result;
}