func IsStructPointer(v interface{}) (bool, error) {
	if value := reflect.ValueOf(v); value.Kind() != reflect.Ptr || value.IsNil() {
		return false, fmt.Errorf("'%v' must be a non-nil pointer", reflect.TypeOf(v))
	} else if pv := reflect.Indirect(value); pv.Kind() != reflect.Struct {
		return false, fmt.Errorf("'%v' must be a non-nil pointer struct", reflect.TypeOf(v))
	}
	return true, nil
}
IsStructPointer is a utility that checks if a given
interface is a struct pointer. If it is a struct pointer
then true is returned with no error message. Otherwise false
is returned with a specific error message indicating what type was passed.
package util
import (
	"fmt"
	"reflect"
	"strings"
	"github.com/iancoleman/strcase"
)
func ToScreamingSnake(name string) string {
	name = strings.ReplaceAll(name, ".", "")
	return strcase.ToScreamingSnake(name)
}
func ToSnake(name string) string {
	name = strings.ReplaceAll(name, ".", "")
	return strcase.ToSnake(name)
}
func ToCamel(name string) string {
	name = strings.ReplaceAll(name, ".", "")
	return strcase.ToCamel(name)
}
func ToLowerCamel(name string) string {
	name = strings.ReplaceAll(name, ".", "")
	return strcase.ToLowerCamel(name)
}
func ToScreamingKebab(name string) string {
	name = strings.ReplaceAll(name, ".", "")
	return strcase.ToScreamingKebab(name)
}
func ToKebab(name string) string {
	name = strings.ReplaceAll(name, ".", "")
	return strcase.ToKebab(name)
}
func ToLower(name string) string {
	return strings.ToLower(name)
}