|
|
@@ -17,7 +17,6 @@
|
|
|
package feed
|
|
|
|
|
|
import (
|
|
|
- "encoding/binary"
|
|
|
"encoding/json"
|
|
|
"time"
|
|
|
)
|
|
|
@@ -30,32 +29,11 @@ type Timestamp struct {
|
|
|
Time uint64 `json:"time"` // Unix epoch timestamp, in seconds
|
|
|
}
|
|
|
|
|
|
-// 8 bytes uint64 Time
|
|
|
-const timestampLength = 8
|
|
|
-
|
|
|
// timestampProvider interface describes a source of timestamp information
|
|
|
type timestampProvider interface {
|
|
|
Now() Timestamp // returns the current timestamp information
|
|
|
}
|
|
|
|
|
|
-// binaryGet populates the timestamp structure from the given byte slice
|
|
|
-func (t *Timestamp) binaryGet(data []byte) error {
|
|
|
- if len(data) != timestampLength {
|
|
|
- return NewError(ErrCorruptData, "timestamp data has the wrong size")
|
|
|
- }
|
|
|
- t.Time = binary.LittleEndian.Uint64(data[:8])
|
|
|
- return nil
|
|
|
-}
|
|
|
-
|
|
|
-// binaryPut Serializes a Timestamp to a byte slice
|
|
|
-func (t *Timestamp) binaryPut(data []byte) error {
|
|
|
- if len(data) != timestampLength {
|
|
|
- return NewError(ErrCorruptData, "timestamp data has the wrong size")
|
|
|
- }
|
|
|
- binary.LittleEndian.PutUint64(data, t.Time)
|
|
|
- return nil
|
|
|
-}
|
|
|
-
|
|
|
// UnmarshalJSON implements the json.Unmarshaller interface
|
|
|
func (t *Timestamp) UnmarshalJSON(data []byte) error {
|
|
|
return json.Unmarshal(data, &t.Time)
|