forked from TrueCloudLab/frostfs-node
91825a0162
Implement reputation `Router` and its constructor, designed to define where to send local trusts. Router is based on dependencies that are hidden behind interfaces, that are declared in the router's package. Signed-off-by: Pavel Karpy <carpawell@nspcc.ru>
28 lines
465 B
Go
28 lines
465 B
Go
package reputationroute
|
|
|
|
import (
|
|
"github.com/nspcc-dev/neofs-node/pkg/util/logger"
|
|
"go.uber.org/zap"
|
|
)
|
|
|
|
// Option sets an optional parameter of Router.
|
|
type Option func(*options)
|
|
|
|
type options struct {
|
|
log *logger.Logger
|
|
}
|
|
|
|
func defaultOpts() *options {
|
|
return &options{
|
|
log: zap.L(),
|
|
}
|
|
}
|
|
|
|
// WithLogger returns Option to specify logging component.
|
|
func WithLogger(l *logger.Logger) Option {
|
|
return func(o *options) {
|
|
if l != nil {
|
|
o.log = l
|
|
}
|
|
}
|
|
}
|