forked from TrueCloudLab/frostfs-node
43 lines
764 B
Go
43 lines
764 B
Go
|
package memstore
|
||
|
|
||
|
import (
|
||
|
"git.frostfs.info/TrueCloudLab/frostfs-node/pkg/local_object_storage/blobstor/compression"
|
||
|
"git.frostfs.info/TrueCloudLab/frostfs-node/pkg/util/logger"
|
||
|
"go.uber.org/zap"
|
||
|
)
|
||
|
|
||
|
type cfg struct {
|
||
|
log *logger.Logger
|
||
|
rootPath string
|
||
|
readOnly bool
|
||
|
compression *compression.Config
|
||
|
reportError func(string, error)
|
||
|
}
|
||
|
|
||
|
func defaultConfig() *cfg {
|
||
|
return &cfg{
|
||
|
log: &logger.Logger{Logger: zap.L()},
|
||
|
reportError: func(string, error) {},
|
||
|
}
|
||
|
}
|
||
|
|
||
|
type Option func(*cfg)
|
||
|
|
||
|
func WithLogger(l *logger.Logger) Option {
|
||
|
return func(c *cfg) {
|
||
|
c.log = l
|
||
|
}
|
||
|
}
|
||
|
|
||
|
func WithRootPath(p string) Option {
|
||
|
return func(c *cfg) {
|
||
|
c.rootPath = p
|
||
|
}
|
||
|
}
|
||
|
|
||
|
func WithReadOnly(ro bool) Option {
|
||
|
return func(c *cfg) {
|
||
|
c.readOnly = ro
|
||
|
}
|
||
|
}
|