code: func IsStruct(s interface{}) bool {
  	v := reflect.ValueOf(s)
  	if v.Kind() == reflect.Ptr {
  		v = v.Elem()
  	}
  
  	// uninitialized zero value of a struct
  	if v.Kind() == reflect.Invalid {
  		return false
  	}
  
  	return v.Kind() == reflect.Struct
  }
docs: // IsStruct returns true if the given variable is a struct or a pointer to
  // struct.