code: func (c *Cloner) RegisterDeepCopyFunc(deepCopyFunc interface{}) error {
  	fv := reflect.ValueOf(deepCopyFunc)
  	ft := fv.Type()
  	if err := verifyDeepCopyFunctionSignature(ft); err != nil {
  		return err
  	}
  	c.deepCopyFuncs[ft.In(0)] = fv
  	return nil
  }
docs: // RegisterGeneratedDeepCopyFunc registers a copying func with the Cloner.
  // deepCopyFunc must take three parameters: a type input, a pointer to a
  // type output, and a pointer to Cloner. It should return an error.
  //
  // Example:
  // c.RegisterGeneratedDeepCopyFunc(
  //         func(in Pod, out *Pod, c *Cloner) error {
  //                 // deep copy logic...
  //                 return nil
  //          })