func (c *WrapperClient) RESTMapper() meta.RESTMapper {
	return c.kube.RESTMapper()
}
RESTMapper returns the rest this client is using.
package unstructured
import (
	"context"
	"k8s.io/apimachinery/pkg/api/meta"
	"k8s.io/apimachinery/pkg/apis/meta/v1/unstructured"
	"k8s.io/apimachinery/pkg/runtime"
	"sigs.k8s.io/controller-runtime/pkg/client"
)
type Wrapper interface {
	GetUnstructured() *unstructured.Unstructured
}
type ListWrapper interface {
	GetUnstructuredList() *unstructured.UnstructuredList
}
func NewClient(c client.Client) *WrapperClient {
	return &WrapperClient{kube: c}
}
type WrapperClient struct {
	kube client.Client
}
func (c *WrapperClient) Get(ctx context.Context, key client.ObjectKey, obj client.Object) error {
	if u, ok := obj.(Wrapper); ok {
		return c.kube.Get(ctx, key, u.GetUnstructured())
	}
	return c.kube.Get(ctx, key, obj)
}
func (c *WrapperClient) List(ctx context.Context, list client.ObjectList, opts ...client.ListOption) error {
	if u, ok := list.(ListWrapper); ok {
		return c.kube.List(ctx, u.GetUnstructuredList(), opts...)
	}
	return c.kube.List(ctx, list, opts...)
}
func (c *WrapperClient) Create(ctx context.Context, obj client.Object, opts ...client.CreateOption) error {
	if u, ok := obj.(Wrapper); ok {
		return c.kube.Create(ctx, u.GetUnstructured(), opts...)
	}
	return c.kube.Create(ctx, obj, opts...)
}
func (c *WrapperClient) Delete(ctx context.Context, obj client.Object, opts ...client.DeleteOption) error {
	if u, ok := obj.(Wrapper); ok {
		return c.kube.Delete(ctx, u.GetUnstructured(), opts...)
	}
	return c.kube.Delete(ctx, obj, opts...)
}
func (c *WrapperClient) Update(ctx context.Context, obj client.Object, opts ...client.UpdateOption) error {
	if u, ok := obj.(Wrapper); ok {
		return c.kube.Update(ctx, u.GetUnstructured(), opts...)
	}
	return c.kube.Update(ctx, obj, opts...)
}
func (c *WrapperClient) Patch(ctx context.Context, obj client.Object, patch client.Patch, opts ...client.PatchOption) error {
	if u, ok := obj.(Wrapper); ok {
		return c.kube.Patch(ctx, u.GetUnstructured(), patch, opts...)
	}
	return c.kube.Patch(ctx, obj, patch, opts...)
}
func (c *WrapperClient) DeleteAllOf(ctx context.Context, obj client.Object, opts ...client.DeleteAllOfOption) error {
	if u, ok := obj.(Wrapper); ok {
		return c.kube.DeleteAllOf(ctx, u.GetUnstructured(), opts...)
	}
	return c.kube.DeleteAllOf(ctx, obj, opts...)
}
func (c *WrapperClient) Status() client.StatusWriter {
	return &wrapperStatusClient{
		kube: c.kube.Status(),
	}
}
func (c *WrapperClient) Scheme() *runtime.Scheme {
	return c.kube.Scheme()
}