code: func (v *Validate) RegisterCustomTypeFunc(fn CustomTypeFunc, types ...interface{}) {
  
  	if v.customFuncs == nil {
  		v.customFuncs = make(map[reflect.Type]CustomTypeFunc)
  	}
  
  	for _, t := range types {
  		v.customFuncs[reflect.TypeOf(t)] = fn
  	}
  
  	v.hasCustomFuncs = true
  }
docs: // RegisterCustomTypeFunc registers a CustomTypeFunc against a number of types
  //
  // NOTE: this method is not thread-safe it is intended that these all be registered prior to any validation