package teststore import ( "git.frostfs.info/TrueCloudLab/frostfs-node/pkg/local_object_storage/blobstor/common" "git.frostfs.info/TrueCloudLab/frostfs-node/pkg/local_object_storage/blobstor/compression" ) type cfg struct { st common.Storage overrides struct { Open func(readOnly bool) error Init func() error Close func() error Type func() string Path func() string SetCompressor func(cc *compression.Config) Compressor func() *compression.Config SetReportErrorFunc func(f func(string, error)) Get func(common.GetPrm) (common.GetRes, error) GetRange func(common.GetRangePrm) (common.GetRangeRes, error) Exists func(common.ExistsPrm) (common.ExistsRes, error) Put func(common.PutPrm) (common.PutRes, error) Delete func(common.DeletePrm) (common.DeleteRes, error) Iterate func(common.IteratePrm) (common.IterateRes, error) } } type Option func(*cfg) func WithSubstorage(st common.Storage) Option { return func(c *cfg) { c.st = st } } func WithOpen(f func(bool) error) Option { return func(c *cfg) { c.overrides.Open = f } } func WithInit(f func() error) Option { return func(c *cfg) { c.overrides.Init = f } } func WithClose(f func() error) Option { return func(c *cfg) { c.overrides.Close = f } } func WithType(f func() string) Option { return func(c *cfg) { c.overrides.Type = f } } func WithPath(f func() string) Option { return func(c *cfg) { c.overrides.Path = f } } func WithSetCompressor(f func(*compression.Config)) Option { return func(c *cfg) { c.overrides.SetCompressor = f } } func WithCompressor(f func() *compression.Config) Option { return func(c *cfg) { c.overrides.Compressor = f } } func WithReportErrorFunc(f func(func(string, error))) Option { return func(c *cfg) { c.overrides.SetReportErrorFunc = f } } func WithGet(f func(common.GetPrm) (common.GetRes, error)) Option { return func(c *cfg) { c.overrides.Get = f } } func WithGetRange(f func(common.GetRangePrm) (common.GetRangeRes, error)) Option { return func(c *cfg) { c.overrides.GetRange = f } } func WithExists(f func(common.ExistsPrm) (common.ExistsRes, error)) Option { return func(c *cfg) { c.overrides.Exists = f } } func WithPut(f func(common.PutPrm) (common.PutRes, error)) Option { return func(c *cfg) { c.overrides.Put = f } } func WithDelete(f func(common.DeletePrm) (common.DeleteRes, error)) Option { return func(c *cfg) { c.overrides.Delete = f } } func WithIterate(f func(common.IteratePrm) (common.IterateRes, error)) Option { return func(c *cfg) { c.overrides.Iterate = f } }