joinStructuredAppend static method

String? joinStructuredAppend(
  1. Iterable<UCode> codes
)

Splits a multi-part QR payload set (structured append) back into one string once every part has been scanned; returns null while parts are missing.

Implementation

static String? joinStructuredAppend(Iterable<UCode> codes) {
  final Map<int, UCode> parts = <int, UCode>{};
  int? total;
  for (final UCode code in codes) {
    final UCodeStructuredAppend? append = code.structuredAppend;
    if (append == null) return null;
    total ??= append.total;
    parts[append.index] = code;
  }
  if (total == null || parts.length != total) return null;
  final StringBuffer buffer = StringBuffer();
  for (int i = 0; i < total; i++) {
    final UCode? part = parts[i];
    if (part == null) return null;
    buffer.write(part.text);
  }
  return buffer.toString();
}