metadataUpdateValue function
Implementation
Uint8List metadataUpdateValue(Uint8List? oldValue, Uint8List newValue) {
if (oldValue == null) {
return newValue;
}
var shorterLength =
oldValue.length < newValue.length ? oldValue.length : newValue.length;
var longerLength =
oldValue.length > newValue.length ? oldValue.length : newValue.length;
var isNewValueShorter = oldValue.length > newValue.length;
var result = Uint8List(longerLength);
var i = 0;
for (i = 0; i < shorterLength; ++i) {
result[i] = oldValue[i] ^ newValue[i];
}
for (; i < longerLength; ++i) {
result[i] = (isNewValueShorter ? oldValue : newValue)[i];
}
return result;
}