pqutil.go (673B)
1 package pqutil 2 3 import ( 4 "strconv" 5 "strings" 6 ) 7 8 // ParseBool is like strconv.ParseBool, but also accepts "yes"/"no" and 9 // "on"/"off". 10 func ParseBool(str string) (bool, error) { 11 switch str { 12 case "1", "t", "T", "true", "TRUE", "True", "yes", "on": 13 return true, nil 14 case "0", "f", "F", "false", "FALSE", "False", "no", "off": 15 return false, nil 16 } 17 return false, &strconv.NumError{Func: "ParseBool", Num: str, Err: strconv.ErrSyntax} 18 } 19 20 func Join[S ~[]E, E ~string](s S) string { 21 var b strings.Builder 22 for i := range s { 23 if i > 0 { 24 b.WriteString(", ") 25 } 26 if i == len(s)-1 { 27 b.WriteString("or ") 28 } 29 b.WriteString(string(s[i])) 30 } 31 return b.String() 32 }