package node import "unsafe" const ( headerSize = 24 streamData = 1 streamRouting = 2 ) type header struct { Counter uint64 // Init with fasttime.Now() << 30 to ensure monotonic. SourceIP byte DestIP byte Forward byte Stream byte // See stream* constants. } func (hdr *header) Parse(nb []byte) { hdr.Counter = *(*uint64)(unsafe.Pointer(&nb[0])) hdr.SourceIP = nb[8] hdr.DestIP = nb[9] hdr.Forward = nb[10] hdr.Stream = nb[11] } func (hdr header) Marshal(buf []byte) { *(*uint64)(unsafe.Pointer(&buf[0])) = hdr.Counter buf[8] = hdr.SourceIP buf[9] = hdr.DestIP buf[10] = hdr.Forward buf[11] = hdr.Stream }