// Copyright Contributors to the Open Cluster Management project
// Code generated by lister-gen. DO NOT EDIT.

package v1

import (
	labels "k8s.io/apimachinery/pkg/labels"
	listers "k8s.io/client-go/listers"
	cache "k8s.io/client-go/tools/cache"
	operatorv1 "open-cluster-management.io/api/operator/v1"
)

// KlusterletLister helps list Klusterlets.
// All objects returned here must be treated as read-only.
type KlusterletLister interface {
	// List lists all Klusterlets in the indexer.
	// Objects returned here must be treated as read-only.
	List(selector labels.Selector) (ret []*operatorv1.Klusterlet, err error)
	// Get retrieves the Klusterlet from the index for a given name.
	// Objects returned here must be treated as read-only.
	Get(name string) (*operatorv1.Klusterlet, error)
	KlusterletListerExpansion
}

// klusterletLister implements the KlusterletLister interface.
type klusterletLister struct {
	listers.ResourceIndexer[*operatorv1.Klusterlet]
}

// NewKlusterletLister returns a new KlusterletLister.
func NewKlusterletLister(indexer cache.Indexer) KlusterletLister {
	return &klusterletLister{listers.New[*operatorv1.Klusterlet](indexer, operatorv1.Resource("klusterlet"))}
}
