X-Git-Url: https://git.r.bdr.sh/rbdr/mobius/blobdiff_plain/29f329aedcdcf4e07a6dc3d9161439dd35ecfe11..fe1cce153b572ba215318c6ccd349cde3d7b7619:/hotline/time.go diff --git a/hotline/time.go b/hotline/time.go index 3b87864..35fa399 100644 --- a/hotline/time.go +++ b/hotline/time.go @@ -2,12 +2,15 @@ package hotline import ( "encoding/binary" + "slices" "time" ) -// toHotlineTime converts a time.Time to the 8 byte Hotline time format: +type Time [8]byte + +// NewTime converts a time.Time to the 8 byte Hotline time format: // Year (2 bytes), milliseconds (2 bytes) and seconds (4 bytes) -func toHotlineTime(t time.Time) (b []byte) { +func NewTime(t time.Time) (b Time) { yearBytes := make([]byte, 2) secondBytes := make([]byte, 4) @@ -17,9 +20,9 @@ func toHotlineTime(t time.Time) (b []byte) { binary.BigEndian.PutUint16(yearBytes, uint16(t.Year())) binary.BigEndian.PutUint32(secondBytes, uint32(t.Sub(startOfYear).Seconds())) - b = append(b, yearBytes...) - b = append(b, []byte{0, 0}...) - b = append(b, secondBytes...) - - return b + return [8]byte(slices.Concat( + yearBytes, + []byte{0, 0}, + secondBytes, + )) }