package reflect import "reflect" // GetTypeInfo is function func GetTypeInfo(t reflect.Type) (realType reflect.Type, pkgName string, name string) { if reflect.Ptr == t.Kind() { return GetTypeInfo(t.Elem()) } return t, t.PkgPath(), t.Name() } // IsTypeKind is function func IsTypeKind(t reflect.Type, kind reflect.Kind, removePtr bool) bool { if reflect.Ptr == t.Kind() { if removePtr { return IsTypeKind(t.Elem(), kind, removePtr) } } return kind == t.Kind() }