/
options_go1.18.go
32 lines (28 loc) · 951 Bytes
/
options_go1.18.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
// Copyright © 2022 Hedzr Yeh.
//go:build go1.18
// +build go1.18
package cmdr
// NewAny creates a wrapped OptFlag, you can connect it to a OptCmd via OptFlag.AttachXXX later.
func NewAny(defaultValue ...any) (opt OptFlag) {
workingFlag := &Flag{}
// optCtx.current.Flags = uniAddFlg(optCtx.current.Flags, optCtx.workingFlag)
opt = &stringOpt{optFlagImpl: optFlagImpl{working: workingFlag}}
var dv interface{}
for _, v := range defaultValue {
dv = v
}
opt.DefaultValue(dv, "")
return
}
// // NewAny creates a wrapped OptFlag, you can connect it to a OptCmd via OptFlag.AttachXXX later.
// func NewAny[T any](defaultValue ...T) (opt OptFlag) {
// workingFlag := &Flag{}
// // optCtx.current.Flags = uniAddFlg(optCtx.current.Flags, optCtx.workingFlag)
// opt = &stringOpt{optFlagImpl: optFlagImpl{working: workingFlag}}
// var dv any
// for _, v := range defaultValue {
// dv = v
// }
// opt.DefaultValue(dv, "")
// return
// }