packPartial function
void
packPartial(})
Implementation
void packPartial(Iterable<int> input, int base, int mask, int outputBlockLength,
List<int> out, int outStart,
{int? padding}) {
int v = 0;
for (int byte in input) {
v <<= 8;
v |= byte;
}
int inputBitLength = input.length * 8;
int dataCount = (inputBitLength / base).ceil();
int outputBitCount = dataCount * base;
int correction = outputBitCount - inputBitLength;
v = v << correction;
for (int i = 0; i < dataCount; i++) {
int j = dataCount - 1 - i;
out[outStart++] = (v >> j * base) & mask;
}
if (padding != null) {
for (int i = dataCount; i < outputBlockLength; i++) {
out[outStart++] = padding;
}
}
}