docs: public boolean check(ByteBuffer data)
      {
          assert (data != null);
          int size = data.limit();
          //  This function is on critical path. It deliberately doesn't use
          //  recursion to get a bit better performance.
          Trie current = this;
          int start = 0;
          while (true) {
              //  We've found a corresponding subscription!
              if (current.refcnt > 0) {
                  return true;
              }
  
              //  We've checked all the data and haven't found matching subscription.
              if (size == 0) {
                  return false;
              }
  
              //  If there's no corresponding slot for the first character
              //  of the prefix, the message does not match.
              byte c = data.get(start);
              if (c < current.min || c >= current.min + current.count) {
                  return false;
              }
  
              //  Move to the next character.
              if (current.count == 1) {
                  current = current.next[0];
              }
              else {
                  current = current.next[c - current.min];
                  if (current == null) {
                      return false;
                  }
              }
              start++;
              size--;
          }
      }