1// Copyright 2009 The Go Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style
3// license that can be found in the LICENSE file.
4
5package strconv
6
7// ParseBool returns the boolean value represented by the string.
8// It accepts 1, t, T, TRUE, true, True, 0, f, F, FALSE, false, False.
9// Any other value returns an error.
10func ParseBool(str string) (value bool, err error) {
11	switch str {
12	case "1", "t", "T", "true", "TRUE", "True":
13		return true, nil
14	case "0", "f", "F", "false", "FALSE", "False":
15		return false, nil
16	}
17	return false, syntaxError("ParseBool", str)
18}
19
20// FormatBool returns "true" or "false" according to the value of b
21func FormatBool(b bool) string {
22	if b {
23		return "true"
24	}
25	return "false"
26}
27
28// AppendBool appends "true" or "false", according to the value of b,
29// to dst and returns the extended buffer.
30func AppendBool(dst []byte, b bool) []byte {
31	if b {
32		return append(dst, "true"...)
33	}
34	return append(dst, "false"...)
35}
36