Files
StarPilot/mapd_repo/third_party/gomsgq/pointer.go
T
firestar5683 ab81464bd1 Maps
Add navigation and map matching providers with the vendored map service sources.

Co-authored-by: Daniel Koepping <elkoled@gmail.com>
Co-authored-by: Danny <dannyirwin31@yahoo.com>
Co-authored-by: Prabhaav Pillai <prabhaav@msu.edu>
Co-authored-by: dirwin31 <83434411+dirwin31@users.noreply.github.com>
2026-10-14 19:56:17 -05:00

31 lines
514 B
Go

package gomsgq
type Pointer struct {
Position uint64
Cycles uint64
}
func (p *Pointer) Marshal() uint64 {
return p.Position | (p.Cycles << 32)
}
func (p *Pointer) Cycle() {
p.Position = 0
p.Cycles++
}
func (p *Pointer) Next(size int64) Pointer {
newPosition := p.Position + uint64(size) + uint64(align(size)) + 8
return Pointer{
Position: newPosition,
Cycles: p.Cycles,
}
}
func NewPointer(value uint64) Pointer {
return Pointer{
Position: value & 0xFFFFFFFF,
Cycles: value >> 32,
}
}