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