docs: private static Iterable<Integer> codePointIterator(final String string) {
          return new Iterable<Integer>() {
              @Override
              public Iterator<Integer> iterator() {
                  return new Iterator<Integer>() {
                      private int nextIndex = 0;
                      private int length = string.length();
  
                      @Override
                      public boolean hasNext() {
                          return this.nextIndex < this.length;
                      }
  
                      @Override
                      public Integer next() {
                          int result = string.codePointAt(this.nextIndex);
                          this.nextIndex += Character.charCount(result);
                          return result;
                      }
  
                      @Override
                      public void remove() {
                          throw new UnsupportedOperationException();
                      }
                  };
              }
          };
      }