44 lines
1.1 KiB
Go
44 lines
1.1 KiB
Go
package copierutil
|
|
|
|
import (
|
|
"time"
|
|
|
|
"github.com/jinzhu/copier"
|
|
"google.golang.org/protobuf/types/known/timestamppb"
|
|
|
|
"github.com/tx7do/go-utils/timeutil"
|
|
"github.com/tx7do/go-utils/trans"
|
|
)
|
|
|
|
var TimeToStringConverter = copier.TypeConverter{
|
|
SrcType: &time.Time{}, // 源类型
|
|
DstType: trans.Ptr(""), // 目标类型
|
|
Fn: func(src interface{}) (interface{}, error) {
|
|
return timeutil.TimeToTimeString(src.(*time.Time)), nil
|
|
},
|
|
}
|
|
|
|
var StringToTimeConverter = copier.TypeConverter{
|
|
SrcType: trans.Ptr(""),
|
|
DstType: &time.Time{},
|
|
Fn: func(src interface{}) (interface{}, error) {
|
|
return timeutil.StringTimeToTime(src.(*string)), nil
|
|
},
|
|
}
|
|
|
|
var TimeToTimestamppbConverter = copier.TypeConverter{
|
|
SrcType: &time.Time{},
|
|
DstType: ×tamppb.Timestamp{},
|
|
Fn: func(src interface{}) (interface{}, error) {
|
|
return timeutil.TimeToTimestamppb(src.(*time.Time)), nil
|
|
},
|
|
}
|
|
|
|
var TimestamppbToTimeConverter = copier.TypeConverter{
|
|
SrcType: ×tamppb.Timestamp{},
|
|
DstType: &time.Time{},
|
|
Fn: func(src interface{}) (interface{}, error) {
|
|
return timeutil.TimestamppbToTime(src.(*timestamppb.Timestamp)), nil
|
|
},
|
|
}
|