|
|
@ -29,6 +29,32 @@ func (b Bool) Get() (v bool, ok bool) {
|
|
|
|
return v, err == nil
|
|
|
|
return v, err == nil
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// Scan implements database/sql.Scanner.
|
|
|
|
|
|
|
|
func (b *Bool) Scan(src interface{}) error {
|
|
|
|
|
|
|
|
if src == nil {
|
|
|
|
|
|
|
|
*b = ""
|
|
|
|
|
|
|
|
return nil
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
switch src := src.(type) {
|
|
|
|
|
|
|
|
case bool:
|
|
|
|
|
|
|
|
if src {
|
|
|
|
|
|
|
|
*b = "true"
|
|
|
|
|
|
|
|
} else {
|
|
|
|
|
|
|
|
*b = "false"
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
return nil
|
|
|
|
|
|
|
|
case int64:
|
|
|
|
|
|
|
|
if src == 0 {
|
|
|
|
|
|
|
|
*b = "false"
|
|
|
|
|
|
|
|
} else {
|
|
|
|
|
|
|
|
*b = "true"
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
return nil
|
|
|
|
|
|
|
|
default:
|
|
|
|
|
|
|
|
return fmt.Errorf("opt.Bool.Scan: invalid type %T: %v", src, src)
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// EqualBool reports whether b is equal to v.
|
|
|
|
// EqualBool reports whether b is equal to v.
|
|
|
|
// If b is empty or not a valid bool, it reports false.
|
|
|
|
// If b is empty or not a valid bool, it reports false.
|
|
|
|
func (b Bool) EqualBool(v bool) bool {
|
|
|
|
func (b Bool) EqualBool(v bool) bool {
|
|
|
|