package nomino import "strings" type config struct { original string prefix string suffix string extension string generator generator } func defaultConf() config { return config{ extension: ".txt", generator: uuidGen, } } type Option func(c *config) func WithOriginal(o string) Option { return func(c *config) { c.original = "_" + o } } func WithPrefix(p string) Option { return func(c *config) { c.prefix = p + "_" } } func WithSuffix(s string) Option { return func(c *config) { c.suffix = "_" + s } } func WithoutExtension() Option { return func(c *config) { c.extension = "" } } func WithExtension(ext string) Option { return func(c *config) { c.extension = "." + strings.TrimPrefix(ext, ".") } }