getEncodedTextStats function

Map<String, int> getEncodedTextStats(
  1. String encodedText
)

Gets statistics about encoded text.

Returns a map containing:

  • 'totalLength': Total character count including variation selectors.
  • 'visibleLength': Count of visible (non-variation selector) characters.
  • 'hiddenBytes': Count of variation selectors (hidden bytes).
  • 'messageCount': Number of decoded messages found.

Implementation

Map<String, int> getEncodedTextStats(String encodedText) {
  int totalLength = 0;
  int visibleLength = 0;
  int hiddenBytes = 0;

  for (final rune in encodedText.runes) {
    totalLength++;
    if (isVariationSelector(rune)) {
      hiddenBytes++;
    } else {
      visibleLength++;
    }
  }

  final messageCount = decodeAll(encodedText).length;

  return {
    'totalLength': totalLength,
    'visibleLength': visibleLength,
    'hiddenBytes': hiddenBytes,
    'messageCount': messageCount,
  };
}