1 Star 0 Fork 0

lipore/plume

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
options.go 1.00 KB
一键复制 编辑 原始数据 按行查看 历史
package code
type Option interface {
Apply(*Options)
}
type Options struct {
ExtraImports bool
ExtraConstants bool
ExtraStructs bool
ExtraInterfaces bool
ExtraFunctions bool
}
func NewOptions(opts ...Option) *Options {
o := &Options{}
for _, opt := range opts {
opt.Apply(o)
}
return o
}
type fnOption struct {
fn func(*Options)
}
func (f *fnOption) Apply(options *Options) {
f.fn(options)
}
func WithImports() Option {
return &fnOption{
fn: func(options *Options) {
options.ExtraImports = true
},
}
}
func WithConstants() Option {
return &fnOption{
fn: func(options *Options) {
options.ExtraConstants = true
},
}
}
func WithStructs() Option {
return &fnOption{
fn: func(options *Options) {
options.ExtraStructs = true
},
}
}
func WithInterfaces() Option {
return &fnOption{
fn: func(options *Options) {
options.ExtraInterfaces = true
},
}
}
func WithFunctions() Option {
return &fnOption{
fn: func(options *Options) {
options.ExtraFunctions = true
},
}
}
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/lipore/plume.git
git@gitee.com:lipore/plume.git
lipore
plume
plume
v1.7.10

搜索帮助