docs: public static int bytesToCodePoint(ByteBuffer bytes) {
          bytes.mark();
          byte b = bytes.get();
          bytes.reset();
          int extraBytesToRead = bytesFromUTF8[(b & 0xFF)];
          if (extraBytesToRead < 0)
              return -1; // trailing byte!
          int ch = 0;
  
          switch (extraBytesToRead) {
              case 5:
                  ch += (bytes.get() & 0xFF);
                  ch <<= 6; /* remember, illegal UTF-8 */
              case 4:
                  ch += (bytes.get() & 0xFF);
                  ch <<= 6; /* remember, illegal UTF-8 */
              case 3:
                  ch += (bytes.get() & 0xFF);
                  ch <<= 6;
              case 2:
                  ch += (bytes.get() & 0xFF);
                  ch <<= 6;
              case 1:
                  ch += (bytes.get() & 0xFF);
                  ch <<= 6;
              case 0:
                  ch += (bytes.get() & 0xFF);
          }
          ch -= offsetsFromUTF8[extraBytesToRead];
  
          return ch;
      }