convert.go raw
1 package scw
2
3 import (
4 "net"
5 "time"
6 )
7
8 // StringPtr returns a pointer to the string value passed in.
9 func StringPtr(v string) *string {
10 return &v
11 }
12
13 // StringSlicePtr converts a slice of string values into a slice of
14 // string pointers
15 func StringSlicePtr(src []string) []*string {
16 dst := make([]*string, len(src))
17 for i := 0; i < len(src); i++ {
18 dst[i] = &(src[i])
19 }
20 return dst
21 }
22
23 // StringsPtr returns a pointer to the []string value passed in.
24 func StringsPtr(v []string) *[]string {
25 return &v
26 }
27
28 // StringsSlicePtr converts a slice of []string values into a slice of
29 // []string pointers
30 func StringsSlicePtr(src [][]string) []*[]string {
31 dst := make([]*[]string, len(src))
32 for i := 0; i < len(src); i++ {
33 dst[i] = &(src[i])
34 }
35 return dst
36 }
37
38 // BytesPtr returns a pointer to the []byte value passed in.
39 func BytesPtr(v []byte) *[]byte {
40 return &v
41 }
42
43 // BytesSlicePtr converts a slice of []byte values into a slice of
44 // []byte pointers
45 func BytesSlicePtr(src [][]byte) []*[]byte {
46 dst := make([]*[]byte, len(src))
47 for i := 0; i < len(src); i++ {
48 dst[i] = &(src[i])
49 }
50 return dst
51 }
52
53 // BoolPtr returns a pointer to the bool value passed in.
54 func BoolPtr(v bool) *bool {
55 return &v
56 }
57
58 // BoolSlicePtr converts a slice of bool values into a slice of
59 // bool pointers
60 func BoolSlicePtr(src []bool) []*bool {
61 dst := make([]*bool, len(src))
62 for i := 0; i < len(src); i++ {
63 dst[i] = &(src[i])
64 }
65 return dst
66 }
67
68 // Int32Ptr returns a pointer to the int32 value passed in.
69 func Int32Ptr(v int32) *int32 {
70 return &v
71 }
72
73 // Int32SlicePtr converts a slice of int32 values into a slice of
74 // int32 pointers
75 func Int32SlicePtr(src []int32) []*int32 {
76 dst := make([]*int32, len(src))
77 for i := 0; i < len(src); i++ {
78 dst[i] = &(src[i])
79 }
80 return dst
81 }
82
83 // Int64Ptr returns a pointer to the int64 value passed in.
84 func Int64Ptr(v int64) *int64 {
85 return &v
86 }
87
88 // Int64SlicePtr converts a slice of int64 values into a slice of
89 // int64 pointers
90 func Int64SlicePtr(src []int64) []*int64 {
91 dst := make([]*int64, len(src))
92 for i := 0; i < len(src); i++ {
93 dst[i] = &(src[i])
94 }
95 return dst
96 }
97
98 // Uint32Ptr returns a pointer to the uint32 value passed in.
99 func Uint32Ptr(v uint32) *uint32 {
100 return &v
101 }
102
103 // Uint32SlicePtr converts a slice of uint32 values into a slice of
104 // uint32 pointers
105 func Uint32SlicePtr(src []uint32) []*uint32 {
106 dst := make([]*uint32, len(src))
107 for i := 0; i < len(src); i++ {
108 dst[i] = &(src[i])
109 }
110 return dst
111 }
112
113 // Uint64Ptr returns a pointer to the uint64 value passed in.
114 func Uint64Ptr(v uint64) *uint64 {
115 return &v
116 }
117
118 // Uint64SlicePtr converts a slice of uint64 values into a slice of
119 // uint64 pointers
120 func Uint64SlicePtr(src []uint64) []*uint64 {
121 dst := make([]*uint64, len(src))
122 for i := 0; i < len(src); i++ {
123 dst[i] = &(src[i])
124 }
125 return dst
126 }
127
128 // Float32Ptr returns a pointer to the float32 value passed in.
129 func Float32Ptr(v float32) *float32 {
130 return &v
131 }
132
133 // Float32SlicePtr converts a slice of float32 values into a slice of
134 // float32 pointers
135 func Float32SlicePtr(src []float32) []*float32 {
136 dst := make([]*float32, len(src))
137 for i := 0; i < len(src); i++ {
138 dst[i] = &(src[i])
139 }
140 return dst
141 }
142
143 // Float64Ptr returns a pointer to the float64 value passed in.
144 func Float64Ptr(v float64) *float64 {
145 return &v
146 }
147
148 // Float64SlicePtr converts a slice of float64 values into a slice of
149 // float64 pointers
150 func Float64SlicePtr(src []float64) []*float64 {
151 dst := make([]*float64, len(src))
152 for i := 0; i < len(src); i++ {
153 dst[i] = &(src[i])
154 }
155 return dst
156 }
157
158 // TimeDurationPtr returns a pointer to the Duration value passed in.
159 func TimeDurationPtr(v time.Duration) *time.Duration {
160 return &v
161 }
162
163 // TimePtr returns a pointer to the Time value passed in.
164 func TimePtr(v time.Time) *time.Time {
165 return &v
166 }
167
168 // SizePtr returns a pointer to the Size value passed in.
169 func SizePtr(v Size) *Size {
170 return &v
171 }
172
173 // IPPtr returns a pointer to the net.IP value passed in.
174 func IPPtr(v net.IP) *net.IP {
175 return &v
176 }
177