func WithMeterProvider(provider metric.MeterProvider) Option {
	return optionFunc(func(c *config) {
		if provider != nil {
			c.meterProvider = provider
		}
	})
}
WithMeterProvider will set the meter provider used to get a meter
for creating instruments.
Defaults to global.GetMeterProvider().
package otelgocql
import (
	"github.com/gocql/gocql"
	"go.opentelemetry.io/otel"
	"go.opentelemetry.io/otel/metric"
	"go.opentelemetry.io/otel/metric/global"
	"go.opentelemetry.io/otel/trace"
)
type config struct {
	tracerProvider    trace.TracerProvider
	meterProvider     metric.MeterProvider
	instrumentQuery   bool
	instrumentBatch   bool
	instrumentConnect bool
	queryObserver     gocql.QueryObserver
	batchObserver     gocql.BatchObserver
	connectObserver   gocql.ConnectObserver
}
type Option interface {
	apply(*config)
}
type optionFunc func(*config)
func (o optionFunc) apply(c *config) {
	o(c)
}
func WithQueryObserver(observer gocql.QueryObserver) Option {
	return optionFunc(func(cfg *config) {
		cfg.queryObserver = observer
	})
}
func WithBatchObserver(observer gocql.BatchObserver) Option {
	return optionFunc(func(cfg *config) {
		cfg.batchObserver = observer
	})
}
func WithConnectObserver(observer gocql.ConnectObserver) Option {
	return optionFunc(func(cfg *config) {
		cfg.connectObserver = observer
	})
}
func WithTracerProvider(provider trace.TracerProvider) Option {
	return optionFunc(func(c *config) {
		if provider != nil {
			c.tracerProvider = provider
		}
	})
}