1// +build go1.13
2
3// Copyright (c) Microsoft Corporation. All rights reserved.
4// Licensed under the MIT License.
5
6package to
7
8import "time"
9
10// BoolPtr returns a pointer to the provided bool.
11func BoolPtr(b bool) *bool {
12	return &b
13}
14
15// Float32Ptr returns a pointer to the provided float32.
16func Float32Ptr(i float32) *float32 {
17	return &i
18}
19
20// Float64Ptr returns a pointer to the provided float64.
21func Float64Ptr(i float64) *float64 {
22	return &i
23}
24
25// Int32Ptr returns a pointer to the provided int32.
26func Int32Ptr(i int32) *int32 {
27	return &i
28}
29
30// Int64Ptr returns a pointer to the provided int64.
31func Int64Ptr(i int64) *int64 {
32	return &i
33}
34
35// StringPtr returns a pointer to the provided string.
36func StringPtr(s string) *string {
37	return &s
38}
39
40// TimePtr returns a pointer to the provided time.Time.
41func TimePtr(t time.Time) *time.Time {
42	return &t
43}
44
45// Int32PtrArray returns an array of *int32 from the specified values.
46func Int32PtrArray(vals ...int32) []*int32 {
47	arr := make([]*int32, len(vals), len(vals))
48	for i := range vals {
49		arr[i] = Int32Ptr(vals[i])
50	}
51	return arr
52}
53
54// Int64PtrArray returns an array of *int64 from the specified values.
55func Int64PtrArray(vals ...int64) []*int64 {
56	arr := make([]*int64, len(vals), len(vals))
57	for i := range vals {
58		arr[i] = Int64Ptr(vals[i])
59	}
60	return arr
61}
62
63// Float32PtrArray returns an array of *float32 from the specified values.
64func Float32PtrArray(vals ...float32) []*float32 {
65	arr := make([]*float32, len(vals), len(vals))
66	for i := range vals {
67		arr[i] = Float32Ptr(vals[i])
68	}
69	return arr
70}
71
72// Float64PtrArray returns an array of *float64 from the specified values.
73func Float64PtrArray(vals ...float64) []*float64 {
74	arr := make([]*float64, len(vals), len(vals))
75	for i := range vals {
76		arr[i] = Float64Ptr(vals[i])
77	}
78	return arr
79}
80
81// BoolPtrArray returns an array of *bool from the specified values.
82func BoolPtrArray(vals ...bool) []*bool {
83	arr := make([]*bool, len(vals), len(vals))
84	for i := range vals {
85		arr[i] = BoolPtr(vals[i])
86	}
87	return arr
88}
89
90// StringPtrArray returns an array of *string from the specified values.
91func StringPtrArray(vals ...string) []*string {
92	arr := make([]*string, len(vals), len(vals))
93	for i := range vals {
94		arr[i] = StringPtr(vals[i])
95	}
96	return arr
97}
98
99// TimePtrArray returns an array of *time.Time from the specified values.
100func TimePtrArray(vals ...time.Time) []*time.Time {
101	arr := make([]*time.Time, len(vals), len(vals))
102	for i := range vals {
103		arr[i] = TimePtr(vals[i])
104	}
105	return arr
106}
107