feat: first version.
This commit is contained in:
504
trans/trans.go
Normal file
504
trans/trans.go
Normal file
@@ -0,0 +1,504 @@
|
||||
package trans
|
||||
|
||||
import "time"
|
||||
|
||||
func String(a string) *string {
|
||||
return &a
|
||||
}
|
||||
|
||||
func StringValue(a *string) string {
|
||||
if a == nil {
|
||||
return ""
|
||||
}
|
||||
return *a
|
||||
}
|
||||
|
||||
func Int(a int) *int {
|
||||
return &a
|
||||
}
|
||||
|
||||
func IntValue(a *int) int {
|
||||
if a == nil {
|
||||
return 0
|
||||
}
|
||||
return *a
|
||||
}
|
||||
|
||||
func Int8(a int8) *int8 {
|
||||
return &a
|
||||
}
|
||||
|
||||
func Int8Value(a *int8) int8 {
|
||||
if a == nil {
|
||||
return 0
|
||||
}
|
||||
return *a
|
||||
}
|
||||
|
||||
func Int16(a int16) *int16 {
|
||||
return &a
|
||||
}
|
||||
|
||||
func Int16Value(a *int16) int16 {
|
||||
if a == nil {
|
||||
return 0
|
||||
}
|
||||
return *a
|
||||
}
|
||||
|
||||
func Int32(a int32) *int32 {
|
||||
return &a
|
||||
}
|
||||
|
||||
func Int32Value(a *int32) int32 {
|
||||
if a == nil {
|
||||
return 0
|
||||
}
|
||||
return *a
|
||||
}
|
||||
|
||||
func Int64(a int64) *int64 {
|
||||
return &a
|
||||
}
|
||||
|
||||
func Int64Value(a *int64) int64 {
|
||||
if a == nil {
|
||||
return 0
|
||||
}
|
||||
return *a
|
||||
}
|
||||
|
||||
func Bool(a bool) *bool {
|
||||
return &a
|
||||
}
|
||||
|
||||
func BoolValue(a *bool) bool {
|
||||
if a == nil {
|
||||
return false
|
||||
}
|
||||
return *a
|
||||
}
|
||||
|
||||
func Uint(a uint) *uint {
|
||||
return &a
|
||||
}
|
||||
|
||||
func UintValue(a *uint) uint {
|
||||
if a == nil {
|
||||
return 0
|
||||
}
|
||||
return *a
|
||||
}
|
||||
|
||||
func Uint8(a uint8) *uint8 {
|
||||
return &a
|
||||
}
|
||||
|
||||
func Uint8Value(a *uint8) uint8 {
|
||||
if a == nil {
|
||||
return 0
|
||||
}
|
||||
return *a
|
||||
}
|
||||
|
||||
func Uint16(a uint16) *uint16 {
|
||||
return &a
|
||||
}
|
||||
|
||||
func Uint16Value(a *uint16) uint16 {
|
||||
if a == nil {
|
||||
return 0
|
||||
}
|
||||
return *a
|
||||
}
|
||||
|
||||
func Uint32(a uint32) *uint32 {
|
||||
return &a
|
||||
}
|
||||
|
||||
func Uint32Value(a *uint32) uint32 {
|
||||
if a == nil {
|
||||
return 0
|
||||
}
|
||||
return *a
|
||||
}
|
||||
|
||||
func Uint64(a uint64) *uint64 {
|
||||
return &a
|
||||
}
|
||||
|
||||
func Uint64Value(a *uint64) uint64 {
|
||||
if a == nil {
|
||||
return 0
|
||||
}
|
||||
return *a
|
||||
}
|
||||
|
||||
func Float32(a float32) *float32 {
|
||||
return &a
|
||||
}
|
||||
|
||||
func Float32Value(a *float32) float32 {
|
||||
if a == nil {
|
||||
return 0
|
||||
}
|
||||
return *a
|
||||
}
|
||||
|
||||
func Float64(a float64) *float64 {
|
||||
return &a
|
||||
}
|
||||
|
||||
func Float64Value(a *float64) float64 {
|
||||
if a == nil {
|
||||
return 0
|
||||
}
|
||||
return *a
|
||||
}
|
||||
|
||||
func Time(a time.Time) *time.Time {
|
||||
return &a
|
||||
}
|
||||
|
||||
func TimeValue(a *time.Time) time.Time {
|
||||
if a == nil {
|
||||
return time.Now()
|
||||
}
|
||||
return *a
|
||||
}
|
||||
|
||||
func IntSlice(a []int) []*int {
|
||||
if a == nil {
|
||||
return nil
|
||||
}
|
||||
res := make([]*int, len(a))
|
||||
for i := 0; i < len(a); i++ {
|
||||
res[i] = &a[i]
|
||||
}
|
||||
return res
|
||||
}
|
||||
|
||||
func IntValueSlice(a []*int) []int {
|
||||
if a == nil {
|
||||
return nil
|
||||
}
|
||||
res := make([]int, len(a))
|
||||
for i := 0; i < len(a); i++ {
|
||||
if a[i] != nil {
|
||||
res[i] = *a[i]
|
||||
}
|
||||
}
|
||||
return res
|
||||
}
|
||||
|
||||
func Int8Slice(a []int8) []*int8 {
|
||||
if a == nil {
|
||||
return nil
|
||||
}
|
||||
res := make([]*int8, len(a))
|
||||
for i := 0; i < len(a); i++ {
|
||||
res[i] = &a[i]
|
||||
}
|
||||
return res
|
||||
}
|
||||
|
||||
func Int8ValueSlice(a []*int8) []int8 {
|
||||
if a == nil {
|
||||
return nil
|
||||
}
|
||||
res := make([]int8, len(a))
|
||||
for i := 0; i < len(a); i++ {
|
||||
if a[i] != nil {
|
||||
res[i] = *a[i]
|
||||
}
|
||||
}
|
||||
return res
|
||||
}
|
||||
|
||||
func Int16Slice(a []int16) []*int16 {
|
||||
if a == nil {
|
||||
return nil
|
||||
}
|
||||
res := make([]*int16, len(a))
|
||||
for i := 0; i < len(a); i++ {
|
||||
res[i] = &a[i]
|
||||
}
|
||||
return res
|
||||
}
|
||||
|
||||
func Int16ValueSlice(a []*int16) []int16 {
|
||||
if a == nil {
|
||||
return nil
|
||||
}
|
||||
res := make([]int16, len(a))
|
||||
for i := 0; i < len(a); i++ {
|
||||
if a[i] != nil {
|
||||
res[i] = *a[i]
|
||||
}
|
||||
}
|
||||
return res
|
||||
}
|
||||
|
||||
func Int32Slice(a []int32) []*int32 {
|
||||
if a == nil {
|
||||
return nil
|
||||
}
|
||||
res := make([]*int32, len(a))
|
||||
for i := 0; i < len(a); i++ {
|
||||
res[i] = &a[i]
|
||||
}
|
||||
return res
|
||||
}
|
||||
|
||||
func Int32ValueSlice(a []*int32) []int32 {
|
||||
if a == nil {
|
||||
return nil
|
||||
}
|
||||
res := make([]int32, len(a))
|
||||
for i := 0; i < len(a); i++ {
|
||||
if a[i] != nil {
|
||||
res[i] = *a[i]
|
||||
}
|
||||
}
|
||||
return res
|
||||
}
|
||||
|
||||
func Int64Slice(a []int64) []*int64 {
|
||||
if a == nil {
|
||||
return nil
|
||||
}
|
||||
res := make([]*int64, len(a))
|
||||
for i := 0; i < len(a); i++ {
|
||||
res[i] = &a[i]
|
||||
}
|
||||
return res
|
||||
}
|
||||
|
||||
func Int64ValueSlice(a []*int64) []int64 {
|
||||
if a == nil {
|
||||
return nil
|
||||
}
|
||||
res := make([]int64, len(a))
|
||||
for i := 0; i < len(a); i++ {
|
||||
if a[i] != nil {
|
||||
res[i] = *a[i]
|
||||
}
|
||||
}
|
||||
return res
|
||||
}
|
||||
|
||||
func UintSlice(a []uint) []*uint {
|
||||
if a == nil {
|
||||
return nil
|
||||
}
|
||||
res := make([]*uint, len(a))
|
||||
for i := 0; i < len(a); i++ {
|
||||
res[i] = &a[i]
|
||||
}
|
||||
return res
|
||||
}
|
||||
|
||||
func UintValueSlice(a []*uint) []uint {
|
||||
if a == nil {
|
||||
return nil
|
||||
}
|
||||
res := make([]uint, len(a))
|
||||
for i := 0; i < len(a); i++ {
|
||||
if a[i] != nil {
|
||||
res[i] = *a[i]
|
||||
}
|
||||
}
|
||||
return res
|
||||
}
|
||||
|
||||
func Uint8Slice(a []uint8) []*uint8 {
|
||||
if a == nil {
|
||||
return nil
|
||||
}
|
||||
res := make([]*uint8, len(a))
|
||||
for i := 0; i < len(a); i++ {
|
||||
res[i] = &a[i]
|
||||
}
|
||||
return res
|
||||
}
|
||||
|
||||
func Uint8ValueSlice(a []*uint8) []uint8 {
|
||||
if a == nil {
|
||||
return nil
|
||||
}
|
||||
res := make([]uint8, len(a))
|
||||
for i := 0; i < len(a); i++ {
|
||||
if a[i] != nil {
|
||||
res[i] = *a[i]
|
||||
}
|
||||
}
|
||||
return res
|
||||
}
|
||||
|
||||
func Uint16Slice(a []uint16) []*uint16 {
|
||||
if a == nil {
|
||||
return nil
|
||||
}
|
||||
res := make([]*uint16, len(a))
|
||||
for i := 0; i < len(a); i++ {
|
||||
res[i] = &a[i]
|
||||
}
|
||||
return res
|
||||
}
|
||||
|
||||
func Uint16ValueSlice(a []*uint16) []uint16 {
|
||||
if a == nil {
|
||||
return nil
|
||||
}
|
||||
res := make([]uint16, len(a))
|
||||
for i := 0; i < len(a); i++ {
|
||||
if a[i] != nil {
|
||||
res[i] = *a[i]
|
||||
}
|
||||
}
|
||||
return res
|
||||
}
|
||||
|
||||
func Uint32Slice(a []uint32) []*uint32 {
|
||||
if a == nil {
|
||||
return nil
|
||||
}
|
||||
res := make([]*uint32, len(a))
|
||||
for i := 0; i < len(a); i++ {
|
||||
res[i] = &a[i]
|
||||
}
|
||||
return res
|
||||
}
|
||||
|
||||
func Uint32ValueSlice(a []*uint32) []uint32 {
|
||||
if a == nil {
|
||||
return nil
|
||||
}
|
||||
res := make([]uint32, len(a))
|
||||
for i := 0; i < len(a); i++ {
|
||||
if a[i] != nil {
|
||||
res[i] = *a[i]
|
||||
}
|
||||
}
|
||||
return res
|
||||
}
|
||||
|
||||
func Uint64Slice(a []uint64) []*uint64 {
|
||||
if a == nil {
|
||||
return nil
|
||||
}
|
||||
res := make([]*uint64, len(a))
|
||||
for i := 0; i < len(a); i++ {
|
||||
res[i] = &a[i]
|
||||
}
|
||||
return res
|
||||
}
|
||||
|
||||
func Uint64ValueSlice(a []*uint64) []uint64 {
|
||||
if a == nil {
|
||||
return nil
|
||||
}
|
||||
res := make([]uint64, len(a))
|
||||
for i := 0; i < len(a); i++ {
|
||||
if a[i] != nil {
|
||||
res[i] = *a[i]
|
||||
}
|
||||
}
|
||||
return res
|
||||
}
|
||||
|
||||
func Float32Slice(a []float32) []*float32 {
|
||||
if a == nil {
|
||||
return nil
|
||||
}
|
||||
res := make([]*float32, len(a))
|
||||
for i := 0; i < len(a); i++ {
|
||||
res[i] = &a[i]
|
||||
}
|
||||
return res
|
||||
}
|
||||
|
||||
func Float32ValueSlice(a []*float32) []float32 {
|
||||
if a == nil {
|
||||
return nil
|
||||
}
|
||||
res := make([]float32, len(a))
|
||||
for i := 0; i < len(a); i++ {
|
||||
if a[i] != nil {
|
||||
res[i] = *a[i]
|
||||
}
|
||||
}
|
||||
return res
|
||||
}
|
||||
|
||||
func Float64Slice(a []float64) []*float64 {
|
||||
if a == nil {
|
||||
return nil
|
||||
}
|
||||
res := make([]*float64, len(a))
|
||||
for i := 0; i < len(a); i++ {
|
||||
res[i] = &a[i]
|
||||
}
|
||||
return res
|
||||
}
|
||||
|
||||
func Float64ValueSlice(a []*float64) []float64 {
|
||||
if a == nil {
|
||||
return nil
|
||||
}
|
||||
res := make([]float64, len(a))
|
||||
for i := 0; i < len(a); i++ {
|
||||
if a[i] != nil {
|
||||
res[i] = *a[i]
|
||||
}
|
||||
}
|
||||
return res
|
||||
}
|
||||
|
||||
func StringSlice(a []string) []*string {
|
||||
if a == nil {
|
||||
return nil
|
||||
}
|
||||
res := make([]*string, len(a))
|
||||
for i := 0; i < len(a); i++ {
|
||||
res[i] = &a[i]
|
||||
}
|
||||
return res
|
||||
}
|
||||
|
||||
func StringSliceValue(a []*string) []string {
|
||||
if a == nil {
|
||||
return nil
|
||||
}
|
||||
res := make([]string, len(a))
|
||||
for i := 0; i < len(a); i++ {
|
||||
if a[i] != nil {
|
||||
res[i] = *a[i]
|
||||
}
|
||||
}
|
||||
return res
|
||||
}
|
||||
|
||||
func BoolSlice(a []bool) []*bool {
|
||||
if a == nil {
|
||||
return nil
|
||||
}
|
||||
res := make([]*bool, len(a))
|
||||
for i := 0; i < len(a); i++ {
|
||||
res[i] = &a[i]
|
||||
}
|
||||
return res
|
||||
}
|
||||
|
||||
func BoolSliceValue(a []*bool) []bool {
|
||||
if a == nil {
|
||||
return nil
|
||||
}
|
||||
res := make([]bool, len(a))
|
||||
for i := 0; i < len(a); i++ {
|
||||
if a[i] != nil {
|
||||
res[i] = *a[i]
|
||||
}
|
||||
}
|
||||
return res
|
||||
}
|
||||
169
trans/trans_test.go
Normal file
169
trans/trans_test.go
Normal file
@@ -0,0 +1,169 @@
|
||||
package trans
|
||||
|
||||
import (
|
||||
"testing"
|
||||
"time"
|
||||
|
||||
"github.com/stretchr/testify/assert"
|
||||
)
|
||||
|
||||
func Test_Trans(t *testing.T) {
|
||||
str := String("tea")
|
||||
strVal := StringValue(str)
|
||||
assert.Equal(t, "tea", strVal)
|
||||
assert.Equal(t, "", StringValue(nil))
|
||||
|
||||
strSlice := StringSlice([]string{"tea"})
|
||||
strSliceVal := StringSliceValue(strSlice)
|
||||
assert.Equal(t, []string{"tea"}, strSliceVal)
|
||||
assert.Nil(t, StringSlice(nil))
|
||||
assert.Nil(t, StringSliceValue(nil))
|
||||
|
||||
b := Bool(true)
|
||||
bVal := BoolValue(b)
|
||||
assert.Equal(t, true, bVal)
|
||||
assert.Equal(t, false, BoolValue(nil))
|
||||
|
||||
bSlice := BoolSlice([]bool{false})
|
||||
bSliceVal := BoolSliceValue(bSlice)
|
||||
assert.Equal(t, []bool{false}, bSliceVal)
|
||||
assert.Nil(t, BoolSlice(nil))
|
||||
assert.Nil(t, BoolSliceValue(nil))
|
||||
|
||||
f64 := Float64(2.00)
|
||||
f64Val := Float64Value(f64)
|
||||
assert.Equal(t, 2.00, f64Val)
|
||||
assert.Equal(t, float64(0), Float64Value(nil))
|
||||
|
||||
f32 := Float32(2.00)
|
||||
f32Val := Float32Value(f32)
|
||||
assert.Equal(t, float32(2.00), f32Val)
|
||||
assert.Equal(t, float32(0), Float32Value(nil))
|
||||
|
||||
f64Slice := Float64Slice([]float64{2.00})
|
||||
f64SliceVal := Float64ValueSlice(f64Slice)
|
||||
assert.Equal(t, []float64{2.00}, f64SliceVal)
|
||||
assert.Nil(t, Float64Slice(nil))
|
||||
assert.Nil(t, Float64ValueSlice(nil))
|
||||
|
||||
f32Slice := Float32Slice([]float32{2.00})
|
||||
f32SliceVal := Float32ValueSlice(f32Slice)
|
||||
assert.Equal(t, []float32{2.00}, f32SliceVal)
|
||||
assert.Nil(t, Float32Slice(nil))
|
||||
assert.Nil(t, Float32ValueSlice(nil))
|
||||
|
||||
i := Int(1)
|
||||
iVal := IntValue(i)
|
||||
assert.Equal(t, 1, iVal)
|
||||
assert.Equal(t, 0, IntValue(nil))
|
||||
|
||||
i8 := Int8(int8(1))
|
||||
i8Val := Int8Value(i8)
|
||||
assert.Equal(t, int8(1), i8Val)
|
||||
assert.Equal(t, int8(0), Int8Value(nil))
|
||||
|
||||
i16 := Int16(int16(1))
|
||||
i16Val := Int16Value(i16)
|
||||
assert.Equal(t, int16(1), i16Val)
|
||||
assert.Equal(t, int16(0), Int16Value(nil))
|
||||
|
||||
i32 := Int32(int32(1))
|
||||
i32Val := Int32Value(i32)
|
||||
assert.Equal(t, int32(1), i32Val)
|
||||
assert.Equal(t, int32(0), Int32Value(nil))
|
||||
|
||||
i64 := Int64(int64(1))
|
||||
i64Val := Int64Value(i64)
|
||||
assert.Equal(t, int64(1), i64Val)
|
||||
assert.Equal(t, int64(0), Int64Value(nil))
|
||||
|
||||
iSlice := IntSlice([]int{1})
|
||||
iSliceVal := IntValueSlice(iSlice)
|
||||
assert.Equal(t, []int{1}, iSliceVal)
|
||||
assert.Nil(t, IntSlice(nil))
|
||||
assert.Nil(t, IntValueSlice(nil))
|
||||
|
||||
i8Slice := Int8Slice([]int8{1})
|
||||
i8ValSlice := Int8ValueSlice(i8Slice)
|
||||
assert.Equal(t, []int8{1}, i8ValSlice)
|
||||
assert.Nil(t, Int8Slice(nil))
|
||||
assert.Nil(t, Int8ValueSlice(nil))
|
||||
|
||||
i16Slice := Int16Slice([]int16{1})
|
||||
i16ValSlice := Int16ValueSlice(i16Slice)
|
||||
assert.Equal(t, []int16{1}, i16ValSlice)
|
||||
assert.Nil(t, Int16Slice(nil))
|
||||
assert.Nil(t, Int16ValueSlice(nil))
|
||||
|
||||
i32Slice := Int32Slice([]int32{1})
|
||||
i32ValSlice := Int32ValueSlice(i32Slice)
|
||||
assert.Equal(t, []int32{1}, i32ValSlice)
|
||||
assert.Nil(t, Int32Slice(nil))
|
||||
assert.Nil(t, Int32ValueSlice(nil))
|
||||
|
||||
i64Slice := Int64Slice([]int64{1})
|
||||
i64ValSlice := Int64ValueSlice(i64Slice)
|
||||
assert.Equal(t, []int64{1}, i64ValSlice)
|
||||
assert.Nil(t, Int64Slice(nil))
|
||||
assert.Nil(t, Int64ValueSlice(nil))
|
||||
|
||||
ui := Uint(1)
|
||||
uiVal := UintValue(ui)
|
||||
assert.Equal(t, uint(1), uiVal)
|
||||
assert.Equal(t, uint(0), UintValue(nil))
|
||||
|
||||
ui8 := Uint8(uint8(1))
|
||||
ui8Val := Uint8Value(ui8)
|
||||
assert.Equal(t, uint8(1), ui8Val)
|
||||
assert.Equal(t, uint8(0), Uint8Value(nil))
|
||||
|
||||
ui16 := Uint16(uint16(1))
|
||||
ui16Val := Uint16Value(ui16)
|
||||
assert.Equal(t, uint16(1), ui16Val)
|
||||
assert.Equal(t, uint16(0), Uint16Value(nil))
|
||||
|
||||
ui32 := Uint32(uint32(1))
|
||||
ui32Val := Uint32Value(ui32)
|
||||
assert.Equal(t, uint32(1), ui32Val)
|
||||
assert.Equal(t, uint32(0), Uint32Value(nil))
|
||||
|
||||
ui64 := Uint64(uint64(1))
|
||||
ui64Val := Uint64Value(ui64)
|
||||
assert.Equal(t, uint64(1), ui64Val)
|
||||
assert.Equal(t, uint64(0), Uint64Value(nil))
|
||||
|
||||
uiSlice := UintSlice([]uint{1})
|
||||
uiValSlice := UintValueSlice(uiSlice)
|
||||
assert.Equal(t, []uint{1}, uiValSlice)
|
||||
assert.Nil(t, UintSlice(nil))
|
||||
assert.Nil(t, UintValueSlice(nil))
|
||||
|
||||
ui8Slice := Uint8Slice([]uint8{1})
|
||||
ui8ValSlice := Uint8ValueSlice(ui8Slice)
|
||||
assert.Equal(t, []uint8{1}, ui8ValSlice)
|
||||
assert.Nil(t, Uint8Slice(nil))
|
||||
assert.Nil(t, Uint8ValueSlice(nil))
|
||||
|
||||
ui16Slice := Uint16Slice([]uint16{1})
|
||||
ui16ValSlice := Uint16ValueSlice(ui16Slice)
|
||||
assert.Equal(t, []uint16{1}, ui16ValSlice)
|
||||
assert.Nil(t, Uint16Slice(nil))
|
||||
assert.Nil(t, Uint16ValueSlice(nil))
|
||||
|
||||
ui32Slice := Uint32Slice([]uint32{1})
|
||||
ui32ValSlice := Uint32ValueSlice(ui32Slice)
|
||||
assert.Equal(t, []uint32{1}, ui32ValSlice)
|
||||
assert.Nil(t, Uint32Slice(nil))
|
||||
assert.Nil(t, Uint32ValueSlice(nil))
|
||||
|
||||
ui64Slice := Uint64Slice([]uint64{1})
|
||||
ui64ValSlice := Uint64ValueSlice(ui64Slice)
|
||||
assert.Equal(t, []uint64{1}, ui64ValSlice)
|
||||
assert.Nil(t, Uint64Slice(nil))
|
||||
assert.Nil(t, Uint64ValueSlice(nil))
|
||||
|
||||
tm := Time(time.Now())
|
||||
tmVal := TimeValue(tm)
|
||||
assert.Equal(t, time.Now(), tmVal)
|
||||
assert.Equal(t, time.Now(), TimeValue(nil))
|
||||
}
|
||||
Reference in New Issue
Block a user