-
-
Notifications
You must be signed in to change notification settings - Fork 0
/
value-bool.go
33 lines (27 loc) · 860 Bytes
/
value-bool.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
33
// Copyright (c) 2022, Roel Schut. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
package rawconv
import (
"strconv"
"github.com/go-pogo/errors"
)
// ValueFromBool encodes v to a Value using strconv.FormatBool.
func ValueFromBool(v bool) Value {
return Value(strconv.FormatBool(v))
}
// Bool tries to parse Value as a bool using strconv.ParseBool.
// It accepts 1, t, T, TRUE, true, True, 0, f, F, FALSE, false, False.
// Any other value returns an error.
func (v Value) Bool() (bool, error) {
x, err := strconv.ParseBool(string(v))
if kind := errKind(err); kind != nil {
return x, errors.Wrap(err, kind)
}
return x, errors.WithStack(err)
}
// BoolVar sets the value p points to using Bool.
func (v Value) BoolVar(p *bool) (err error) {
*p, err = v.Bool()
return
}