func newRebalanceOptions() *rebalanceOptions {
	return &rebalanceOptions{
		config: clusterConfigShim{},
		logger: log.NewNopLogger(),
		clock:  clock.New(),
	}
}
Create a options instance with default values.
package membership
import (
	"fmt"
	"github.com/go-kit/kit/log"
	"github.com/go-kit/kit/log/level"
	"github.com/pkg/errors"
	"github.com/spoke-d/thermionic/internal/clock"
	clusterconfig "github.com/spoke-d/thermionic/internal/cluster/config"
	"github.com/spoke-d/thermionic/internal/config"
	"github.com/spoke-d/thermionic/internal/db"
)
type RebalanceOption func(*rebalanceOptions)
type rebalanceOptions struct {
	state   State
	gateway Gateway
	config  ClusterConfigProvider
	schema  config.Schema
	logger  log.Logger
	clock   clock.Clock
}
func WithStateForRebalance(state State) RebalanceOption {
	return func(options *rebalanceOptions) {
		options.state = state
	}
}
func WithGatewayForRebalance(gateway Gateway) RebalanceOption {
	return func(options *rebalanceOptions) {
		options.gateway = gateway
	}
}
func WithConfigForRebalance(config ClusterConfigProvider) RebalanceOption {
	return func(options *rebalanceOptions) {
		options.config = config
	}
}
func WithSchemaForRebalance(schema config.Schema) RebalanceOption {
	return func(options *rebalanceOptions) {
		options.schema = schema
	}
}
func WithLoggerForRebalance(logger log.Logger) RebalanceOption {
	return func(options *rebalanceOptions) {
		options.logger = logger
	}
}
func WithClockForRebalance(clock clock.Clock) RebalanceOption {
	return func(options *rebalanceOptions) {
		options.clock = clock
	}
}