"""Byte-wise cursor utilities for decoding binary ring payloads.""" from __future__ import annotations import struct class ByteCursor: """Read primitive values from bytes while tracking offset.""" def __init__(self, payload: bytes) -> None: """Create cursor at start of payload.""" self.payload = payload self.offset = 0 def read_u8(self) -> int: """Read unsigned 8-bit integer.""" value = struct.unpack_from(" int: """Read unsigned 16-bit integer.""" value = struct.unpack_from(" int: """Read unsigned 32-bit integer.""" value = struct.unpack_from(" int: """Read unsigned 64-bit integer.""" value = struct.unpack_from(" float: """Read 32-bit float.""" value = struct.unpack_from(" bytes: """Read raw byte slice of fixed size.""" data = self.payload[self.offset : self.offset + size] self.offset += size return data