From 82902e9dc3ad67c49e4f9381b83d38a659efa083 Mon Sep 17 00:00:00 2001 From: bt Date: Sat, 16 May 2026 19:15:21 +0200 Subject: Add history reading --- core/payload.go | 41 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) (limited to 'core/payload.go') diff --git a/core/payload.go b/core/payload.go index 3c3afa1..b54a8cd 100644 --- a/core/payload.go +++ b/core/payload.go @@ -185,6 +185,47 @@ func DecodeUsermode(buf io.Reader) (Usermode, error) { return u, nil } +type History struct { + Channel string + Since time.Time + Count int64 + Offset int64 +} + +func (h History) Wrap() (PayloadType, []any) { + return PayloadHistory, []any{ + h.Channel, + h.Since, + h.Count, + h.Offset, + } +} + +func DecodeHistory(buf io.Reader) (History, error) { + var h History + err := decodeString(buf, &h.Channel) + if err != nil { + return h, err + } + + err = decodeTime(buf, &h.Since) + if err != nil { + return h, err + } + + err = decodeNumeric(buf, &h.Count) + if err != nil { + return h, err + } + + err = decodeNumeric(buf, &h.Offset) + if err != nil { + return h, err + } + + return h, nil +} + type Test struct { Num1 uint8 Time1 time.Time -- cgit v1.2.3