package stage3 import "unsafe" const headerSize = 9 type packetHeader struct { SrcIP byte Counter uint64 } func (h packetHeader) Marshal(buf []byte) int { buf = buf[:9] buf[0] = h.SrcIP *(*uint64)(unsafe.Pointer(&buf[1])) = h.Counter return headerSize } func (h *packetHeader) Parse(buf []byte) int { h.SrcIP = buf[0] h.Counter = *(*uint64)(unsafe.Pointer(&buf[1])) return headerSize }