package messagerequester

import (
	"time"
)

// Options holds options for a message requester.
type Options struct {
	retryInterval time.Duration
}

func newOptions(optionalOptions []Option) *Options {
	result := &Options{
		retryInterval: 10 * time.Second,
	}

	for _, optionalOption := range optionalOptions {
		optionalOption(result)
	}

	return result
}

// Option is a function which inits an option.
type Option func(*Options)

// RetryInterval creates an option which sets the retry interval to the given value.
func RetryInterval(interval time.Duration) Option {
	return func(args *Options) {
		args.retryInterval = interval
	}
}