func WithProjectName(projectName string) ConfigOption {
	return func(o *configOption) {
		o.projectName = projectName
	}
}
WithProjectName defines a projectName on the config object and is used to
filter toggles by project name.
package unleash
import (
	"net/http"
	"net/url"
	"time"
	"github.com/Unleash/unleash-client-go/v3/api"
	"github.com/Unleash/unleash-client-go/v3/context"
	"github.com/Unleash/unleash-client-go/v3/strategy"
)
type configOption struct {
	appName         string
	environment     string
	instanceId      string
	url             string
	projectName     string
	refreshInterval time.Duration
	metricsInterval time.Duration
	disableMetrics  bool
	backupPath      string
	strategies      []strategy.Strategy
	listener        interface{}
	storage         Storage
	httpClient      *http.Client
	customHeaders   http.Header
}
type ConfigOption func(*configOption)
func WithListener(listener interface{}) ConfigOption {
	return func(o *configOption) {
		o.listener = listener
	}
}
func WithAppName(appName string) ConfigOption {
	return func(o *configOption) {
		o.appName = appName
	}
}
func WithEnvironment(env string) ConfigOption {
	return func(o *configOption) {
		o.environment = env
	}
}
func WithInstanceId(instanceId string) ConfigOption {
	return func(o *configOption) {
		o.instanceId = instanceId
	}
}
func WithUrl(url string) ConfigOption {
	return func(o *configOption) {
		o.url = url
	}
}
func WithRefreshInterval(refreshInterval time.Duration) ConfigOption {
	return func(o *configOption) {
		o.refreshInterval = refreshInterval
	}
}
func WithMetricsInterval(metricsInterval time.Duration) ConfigOption {
	return func(o *configOption) {
		o.metricsInterval = metricsInterval
	}
}
func WithDisableMetrics(disableMetrics bool) ConfigOption {
	return func(o *configOption) {
		o.disableMetrics = disableMetrics
	}
}
func WithBackupPath(backupPath string) ConfigOption {
	return func(o *configOption) {
		o.backupPath = backupPath
	}
}
func WithStrategies(strategies ...strategy.Strategy) ConfigOption {
	return func(o *configOption) {
		o.strategies = strategies
	}
}
func WithStorage(storage Storage) ConfigOption {
	return func(o *configOption) {
		o.storage = storage
	}
}
func WithHttpClient(client *http.Client) ConfigOption {
	return func(o *configOption) {
		o.httpClient = client
	}
}
func WithCustomHeaders(headers http.Header) ConfigOption {
	return func(o *configOption) {
		o.customHeaders = headers
	}
}