hello, i have a class that provides methods for reading data types from a buffer. i do not want to create many copies of the data because it would be inefficient. In my mind, using memoryview would be good for this problem.
Here is an example implementation:
class Reader:
def __init__(self, buffer: bytes | bytearray, byteorder: str = "little") -> None:
self.view = memoryview(buffer)
self.byteorder = byteorder
def read_byte(self, offset: int) -> int:
return self.view[offset]
def read_sized_int(self, offset: int, size: int) -> int:
view = self.view[offset : offset + size]
return int.from_bytes(view, byteorder=self.byteorder)
Does casting buffer as a memoryview object provide any tangible benefit? How would I be able to tell? 