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