code: func IndexOf(str string, sub string, start int) int {
  
  	if start < 0 {
  		start = 0
  	}
  
  	if len(str) < start {
  		return INDEX_NOT_FOUND
  	}
  
  	if IsEmpty(str) || IsEmpty(sub) {
  		return INDEX_NOT_FOUND
  	}
  
  	partialIndex := strings.Index(str[start:len(str)], sub)
  	if partialIndex == -1 {
  		return INDEX_NOT_FOUND
  	}
  	return partialIndex + start
  }
docs: /*
  IndexOf returns the index of the first instance of sub in str, with the search beginning from the
  index start point specified. -1 is returned if sub is not present in str.
  
  An empty string ("") will return -1 (INDEX_NOT_FOUND). A negative start position is treated as zero.
  A start position greater than the string length returns -1.
  
  Parameters:
      str - the string to check
      sub - the substring to find
      start - the start position; negative treated as zero
  
  Returns:
      the first index where the sub string was found  (always >= start)
  */