package pilorama import ( "io/fs" "os" "time" ) type Option func(*cfg) type cfg struct { path string perm fs.FileMode noSync bool maxBatchDelay time.Duration maxBatchSize int openFile func(string, int, fs.FileMode) (*os.File, error) metrics Metrics } func WithPath(path string) Option { return func(c *cfg) { c.path = path } } func WithPerm(perm fs.FileMode) Option { return func(c *cfg) { c.perm = perm } } func WithNoSync(noSync bool) Option { return func(c *cfg) { c.noSync = noSync } } func WithMaxBatchDelay(d time.Duration) Option { return func(c *cfg) { c.maxBatchDelay = d } } func WithMaxBatchSize(size int) Option { return func(c *cfg) { c.maxBatchSize = size } } func WithOpenFile(openFile func(string, int, fs.FileMode) (*os.File, error)) Option { return func(c *cfg) { c.openFile = openFile } } func WithMetrics(m Metrics) Option { return func(c *cfg) { c.metrics = m } }