github.com/henvic/wedeploycli@v1.7.6-0.20200319005353-3630f582f284/logs/internal/timelog/timelog.go (about) 1 package timelog 2 3 import "time" 4 5 // TimeStackDriver format. 6 // Format: 7 // https://cloud.google.com/logging/docs/reference/v2/rest/v2/LogEntry 8 // https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#google.protobuf.Timestamp 9 type TimeStackDriver time.Time 10 11 // MarshalJSON is used for writing a JSON value. 12 func (r TimeStackDriver) MarshalJSON() ([]byte, error) { 13 t := time.Time(r) 14 return []byte(t.Format(`"` + time.RFC3339Nano + `"`)), nil 15 } 16 17 // UnmarshalJSON is used for parsing a JSON value. 18 func (r *TimeStackDriver) UnmarshalJSON(data []byte) error { 19 // Ignore null, like in the main JSON package. 20 if string(data) == "null" { 21 return nil 22 } 23 24 var rt, err = time.Parse(`"`+time.RFC3339Nano+`"`, string(data)) 25 *r = TimeStackDriver(rt) 26 return err 27 }