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  }