move flag to pkg value

This commit is contained in:
2020-11-01 11:20:51 +03:00
parent 8e3bd34004
commit c48cfff7e8
24 changed files with 21 additions and 22 deletions

View File

@@ -1,97 +0,0 @@
package flag
//go:generate stringer -type=Flag -linecomment
type Flag int
const (
String Flag = 0 // string
Required Flag = 1 << iota // required
Array // array
Int // int
Int64 // int64
Uint // uint
Uint64 // uint64
Float64 // float64
Bool // bool
Duration // duration
Time // time
Any // any
)
func (i Flag) With(v Flag) Flag {
return i | v
}
func (i Flag) IsString() bool {
return i|Required|Array^Required^Array == 0
}
func (i Flag) IsRequired() bool {
return i&Required > 0
}
func (i Flag) IsArray() bool {
return i&Array > 0
}
func (i Flag) IsInt() bool {
return i&Int > 0
}
func (i Flag) IsInt64() bool {
return i&Int64 > 0
}
func (i Flag) IsUint() bool {
return i&Uint > 0
}
func (i Flag) IsUint64() bool {
return i&Uint64 > 0
}
func (i Flag) IsFloat64() bool {
return i&Float64 > 0
}
func (i Flag) IsBool() bool {
return i&Bool > 0
}
func (i Flag) IsDuration() bool {
return i&Duration > 0
}
func (i Flag) IsTime() bool {
return i&Time > 0
}
func (i Flag) IsAny() bool {
return i&Any > 0
}
func (i Flag) Type() Flag {
switch {
case i.IsInt():
return Int
case i.IsInt64():
return Int64
case i.IsUint():
return Uint
case i.IsUint64():
return Uint64
case i.IsFloat64():
return Float64
case i.IsBool():
return Bool
case i.IsDuration():
return Duration
case i.IsTime():
return Time
case i.IsAny():
return Any
default:
return String
}
}