1package aws
2
3import (
4	"fmt"
5)
6
7// Ternary is an enum allowing an unknown or none state in addition to a bool's
8// true and false.
9type Ternary int
10
11func (t Ternary) String() string {
12	switch t {
13	case UnknownTernary:
14		return "unknown"
15	case FalseTernary:
16		return "false"
17	case TrueTernary:
18		return "true"
19	default:
20		return fmt.Sprintf("unknown value, %d", int(t))
21	}
22}
23
24// Bool returns true if the value is TrueTernary, false otherwise.
25func (t Ternary) Bool() bool {
26	return t == TrueTernary
27}
28
29// Enumerations for the values of the Ternary type.
30const (
31	UnknownTernary Ternary = iota
32	FalseTernary
33	TrueTernary
34)
35
36// BoolTernary returns a true or false Ternary value for the bool provided.
37func BoolTernary(v bool) Ternary {
38	if v {
39		return TrueTernary
40	}
41	return FalseTernary
42}
43