func WithBeaconCommitteeSubmitter(submitter submitter.BeaconCommitteeSubscriptionsSubmitter) Parameter {
	return parameterFunc(func(p *parameters) {
		p.beaconCommitteeSubmitter = submitter
	})
}
WithBeaconCommitteeSubmitter sets the beacon committee subscriptions submitter.
package standard
import (
	eth2client "github.com/attestantio/go-eth2-client"
	"github.com/attestantio/vouch/services/attestationaggregator"
	"github.com/attestantio/vouch/services/metrics"
	"github.com/attestantio/vouch/services/submitter"
	"github.com/pkg/errors"
	"github.com/rs/zerolog"
)
type parameters struct {
	logLevel                 zerolog.Level
	processConcurrency       int64
	monitor                  metrics.BeaconCommitteeSubscriptionMonitor
	attesterDutiesProvider   eth2client.AttesterDutiesProvider
	beaconCommitteeSubmitter submitter.BeaconCommitteeSubscriptionsSubmitter
	attestationAggregator    attestationaggregator.Service
}
type Parameter interface {
	apply(*parameters)
}
type parameterFunc func(*parameters)
func (f parameterFunc) apply(p *parameters) {
	f(p)
}
func WithLogLevel(logLevel zerolog.Level) Parameter {
	return parameterFunc(func(p *parameters) {
		p.logLevel = logLevel
	})
}
func WithProcessConcurrency(concurrency int64) Parameter {
	return parameterFunc(func(p *parameters) {
		p.processConcurrency = concurrency
	})
}
func WithMonitor(monitor metrics.BeaconCommitteeSubscriptionMonitor) Parameter {
	return parameterFunc(func(p *parameters) {
		p.monitor = monitor
	})
}
func WithAttesterDutiesProvider(provider eth2client.AttesterDutiesProvider) Parameter {
	return parameterFunc(func(p *parameters) {
		p.attesterDutiesProvider = provider
	})
}
func WithAttestationAggregator(aggregator attestationaggregator.Service) Parameter {
	return parameterFunc(func(p *parameters) {
		p.attestationAggregator = aggregator
	})
}