func (rr ResolutionRequest) IsNoOp() bool {
	if rr.CurrentValue != "" {
		return true
	}
	return rr.Reference == nil && rr.Selector == nil
}
IsNoOp returns true if the supplied ResolutionRequest cannot or should not be
processed.
package reference
import (
	"context"
	"k8s.io/apimachinery/pkg/types"
	"sigs.k8s.io/controller-runtime/pkg/client"
	xpv1 "github.com/crossplane/crossplane-runtime/apis/common/v1"
	"github.com/crossplane/crossplane-runtime/pkg/errors"
	"github.com/crossplane/crossplane-runtime/pkg/meta"
	"github.com/crossplane/crossplane-runtime/pkg/resource"
)
const (
	errGetManaged  = "cannot get referenced resource"
	errListManaged = "cannot list resources that match selector"
	errNoMatches   = "no resources matched selector"
	errNoValue     = "referenced field was empty (referenced resource may not yet be ready)"
)
func FromPtrValue(v *string) string {
	if v == nil {
		return ""
	}
	return *v
}
func ToPtrValue(v string) *string {
	if v == "" {
		return nil
	}
	return &v
}
func FromPtrValues(v []*string) []string {
	var res = make([]string, len(v))
	for i := 0; i < len(v); i++ {
		res[i] = FromPtrValue(v[i])
	}
	return res
}
func ToPtrValues(v []string) []*string {
	var res = make([]*string, len(v))
	for i := 0; i < len(v); i++ {
		res[i] = ToPtrValue(v[i])
	}
	return res
}
type To struct {
	Managed resource.Managed
	List    resource.ManagedList
}
type ExtractValueFn func(resource.Managed) string
func ExternalName() ExtractValueFn {
	return func(mg resource.Managed) string {
		return meta.GetExternalName(mg)
	}
}
type ResolutionRequest struct {
	CurrentValue string
	Reference    *xpv1.Reference
	Selector     *xpv1.Selector
	To           To
	Extract      ExtractValueFn
}