1// Copyright © 2014 Steve Francia <spf@spf13.com>.
2//
3// Use of this source code is governed by an MIT-style
4// license that can be found in the LICENSE file.
5
6// Package cast provides easy and safe casting in Go.
7package cast
8
9import "time"
10
11// ToBool casts an interface to a bool type.
12func ToBool(i interface{}) bool {
13	v, _ := ToBoolE(i)
14	return v
15}
16
17// ToTime casts an interface to a time.Time type.
18func ToTime(i interface{}) time.Time {
19	v, _ := ToTimeE(i)
20	return v
21}
22
23// ToDuration casts an interface to a time.Duration type.
24func ToDuration(i interface{}) time.Duration {
25	v, _ := ToDurationE(i)
26	return v
27}
28
29// ToFloat64 casts an interface to a float64 type.
30func ToFloat64(i interface{}) float64 {
31	v, _ := ToFloat64E(i)
32	return v
33}
34
35// ToFloat32 casts an interface to a float32 type.
36func ToFloat32(i interface{}) float32 {
37	v, _ := ToFloat32E(i)
38	return v
39}
40
41// ToInt64 casts an interface to an int64 type.
42func ToInt64(i interface{}) int64 {
43	v, _ := ToInt64E(i)
44	return v
45}
46
47// ToInt32 casts an interface to an int32 type.
48func ToInt32(i interface{}) int32 {
49	v, _ := ToInt32E(i)
50	return v
51}
52
53// ToInt16 casts an interface to an int16 type.
54func ToInt16(i interface{}) int16 {
55	v, _ := ToInt16E(i)
56	return v
57}
58
59// ToInt8 casts an interface to an int8 type.
60func ToInt8(i interface{}) int8 {
61	v, _ := ToInt8E(i)
62	return v
63}
64
65// ToInt casts an interface to an int type.
66func ToInt(i interface{}) int {
67	v, _ := ToIntE(i)
68	return v
69}
70
71// ToUint casts an interface to a uint type.
72func ToUint(i interface{}) uint {
73	v, _ := ToUintE(i)
74	return v
75}
76
77// ToUint64 casts an interface to a uint64 type.
78func ToUint64(i interface{}) uint64 {
79	v, _ := ToUint64E(i)
80	return v
81}
82
83// ToUint32 casts an interface to a uint32 type.
84func ToUint32(i interface{}) uint32 {
85	v, _ := ToUint32E(i)
86	return v
87}
88
89// ToUint16 casts an interface to a uint16 type.
90func ToUint16(i interface{}) uint16 {
91	v, _ := ToUint16E(i)
92	return v
93}
94
95// ToUint8 casts an interface to a uint8 type.
96func ToUint8(i interface{}) uint8 {
97	v, _ := ToUint8E(i)
98	return v
99}
100
101// ToString casts an interface to a string type.
102func ToString(i interface{}) string {
103	v, _ := ToStringE(i)
104	return v
105}
106
107// ToStringMapString casts an interface to a map[string]string type.
108func ToStringMapString(i interface{}) map[string]string {
109	v, _ := ToStringMapStringE(i)
110	return v
111}
112
113// ToStringMapStringSlice casts an interface to a map[string][]string type.
114func ToStringMapStringSlice(i interface{}) map[string][]string {
115	v, _ := ToStringMapStringSliceE(i)
116	return v
117}
118
119// ToStringMapBool casts an interface to a map[string]bool type.
120func ToStringMapBool(i interface{}) map[string]bool {
121	v, _ := ToStringMapBoolE(i)
122	return v
123}
124
125// ToStringMapInt casts an interface to a map[string]int type.
126func ToStringMapInt(i interface{}) map[string]int {
127	v, _ := ToStringMapIntE(i)
128	return v
129}
130
131// ToStringMapInt64 casts an interface to a map[string]int64 type.
132func ToStringMapInt64(i interface{}) map[string]int64 {
133	v, _ := ToStringMapInt64E(i)
134	return v
135}
136
137// ToStringMap casts an interface to a map[string]interface{} type.
138func ToStringMap(i interface{}) map[string]interface{} {
139	v, _ := ToStringMapE(i)
140	return v
141}
142
143// ToSlice casts an interface to a []interface{} type.
144func ToSlice(i interface{}) []interface{} {
145	v, _ := ToSliceE(i)
146	return v
147}
148
149// ToBoolSlice casts an interface to a []bool type.
150func ToBoolSlice(i interface{}) []bool {
151	v, _ := ToBoolSliceE(i)
152	return v
153}
154
155// ToStringSlice casts an interface to a []string type.
156func ToStringSlice(i interface{}) []string {
157	v, _ := ToStringSliceE(i)
158	return v
159}
160
161// ToIntSlice casts an interface to a []int type.
162func ToIntSlice(i interface{}) []int {
163	v, _ := ToIntSliceE(i)
164	return v
165}
166
167// ToDurationSlice casts an interface to a []time.Duration type.
168func ToDurationSlice(i interface{}) []time.Duration {
169	v, _ := ToDurationSliceE(i)
170	return v
171}
172