code: func extractFromOwnerReference(v reflect.Value, o *metav1.OwnerReference) error {
  	if err := runtime.Field(v, "APIVersion", &o.APIVersion); err != nil {
  		return err
  	}
  	if err := runtime.Field(v, "Kind", &o.Kind); err != nil {
  		return err
  	}
  	if err := runtime.Field(v, "Name", &o.Name); err != nil {
  		return err
  	}
  	if err := runtime.Field(v, "UID", &o.UID); err != nil {
  		return err
  	}
  	var controllerPtr *bool
  	if err := runtime.Field(v, "Controller", &controllerPtr); err != nil {
  		return err
  	}
  	if controllerPtr != nil {
  		controller := *controllerPtr
  		o.Controller = &controller
  	}
  	var blockOwnerDeletionPtr *bool
  	if err := runtime.Field(v, "BlockOwnerDeletion", &blockOwnerDeletionPtr); err != nil {
  		return err
  	}
  	if blockOwnerDeletionPtr != nil {
  		block := *blockOwnerDeletionPtr
  		o.BlockOwnerDeletion = &block
  	}
  	return nil
  }
docs: // extractFromOwnerReference extracts v to o. v is the OwnerReferences field of an object.