code: func subArrayUsage(arrayType reflect.Type, fieldName string) string {
  	// Convert plural field names to singular.  Only works for English.
  	singularFieldName := fieldName
  	if strings.HasSuffix(fieldName, "ies") {
  		singularFieldName = strings.TrimSuffix(fieldName, "ies")
  		singularFieldName = singularFieldName + "y"
  	} else if strings.HasSuffix(fieldName, "es") {
  		singularFieldName = strings.TrimSuffix(fieldName, "es")
  	} else if strings.HasSuffix(fieldName, "s") {
  		singularFieldName = strings.TrimSuffix(fieldName, "s")
  	}
  
  	elemType := arrayType.Elem()
  	switch elemType.Kind() {
  	case reflect.String:
  		return fmt.Sprintf("[%q,...]", singularFieldName)
  
  	case reflect.Struct:
  		return fmt.Sprintf("[%s,...]", subStructUsage(elemType))
  	}
  
  	// Fall back to simply showing the field name in array syntax.
  	return fmt.Sprintf(`[%s,...]`, singularFieldName)
  }
docs: // subArrayUsage returns a string for use in the one-line usage for the given
  // array or slice.  It also contains logic to convert plural field names to
  // singular so the generated usage string reads better.