Files
nostrlib/eventstore/mmm/position.go
2025-04-15 08:49:28 -03:00

28 lines
542 B
Go

package mmm
import (
"encoding/binary"
"fmt"
)
type position struct {
start uint64
size uint32
}
func (pos position) String() string {
return fmt.Sprintf("<%d|%d|%d>", pos.start, pos.size, pos.start+uint64(pos.size))
}
func positionFromBytes(posb []byte) position {
return position{
size: binary.BigEndian.Uint32(posb[0:4]),
start: binary.BigEndian.Uint64(posb[4:12]),
}
}
func bytesFromPosition(out []byte, pos position) {
binary.BigEndian.PutUint32(out[0:4], pos.size)
binary.BigEndian.PutUint64(out[4:12], pos.start)
}