You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
24 lines
574 B
Go
24 lines
574 B
Go
package types
|
|
|
|
// BoolValues defines the name and value mappings for ParseBool.
|
|
var BoolValues = map[string]interface{}{
|
|
"true": true, "yes": true, "on": true, "1": true,
|
|
"false": false, "no": false, "off": false, "0": false,
|
|
}
|
|
|
|
var boolParser = func() *EnumParser {
|
|
ep := &EnumParser{}
|
|
ep.AddVals(BoolValues)
|
|
return ep
|
|
}()
|
|
|
|
// ParseBool parses bool values according to the definitions in BoolValues.
|
|
// Parsing is case-insensitive.
|
|
func ParseBool(s string) (bool, error) {
|
|
v, err := boolParser.Parse(s)
|
|
if err != nil {
|
|
return false, err
|
|
}
|
|
return v.(bool), nil
|
|
}
|