docs: public static <T> int singleIndexOf(Collection<T> items, Predicate<T> predicate) {
          int result = NOT_FOUND_INDEX;
  
          if (!isEmpty(items)) {
              int index = 0;
              for (T item : items) {
                  if (predicate.apply(item)) {
                      if (result == NOT_FOUND_INDEX) {
                          result = index;
                      } else {
                          throw new InvalidOperationException("Multiple items match!");
                      }
                  }
  
                  index++;
              }
          }
  
          return result;
      }