milvus/cmd/tools/migration/console/exit_config.go

38 lines
600 B
Go

package console
type exitConfig struct {
abnormal bool
code ErrorCode
msg string
}
func defaultExitConfig() exitConfig {
return exitConfig{abnormal: false, code: 0, msg: ""}
}
type ExitOption func(c *exitConfig)
func (c *exitConfig) apply(opts ...ExitOption) {
for _, opt := range opts {
opt(c)
}
}
func WithExitCode(code ErrorCode) ExitOption {
return func(c *exitConfig) {
c.code = code
}
}
func WithAbnormalExit() ExitOption {
return func(c *exitConfig) {
c.abnormal = true
}
}
func WithMsg(msg string) ExitOption {
return func(c *exitConfig) {
c.msg = msg
}
}