from io import FileIO

__author__ = 'tony'
import struct


class ByteArray:
    @staticmethod
    def load_from_file(filename):
        f = FileIO(filename, 'rb')
        data = f.readall()
        return ByteArray(data)

    def __init__(self, data):
        self.data = data
        self.offset = 0

    def has_more(self):
        return self.offset < len(self.data)

    def next_ushort(self):
        data = struct.unpack_from('!h', self.data, self.offset)
        self.offset += 2
        return data[0]

    def next_uchar(self):
        data = struct.unpack_from('!B', self.data, self.offset)
        self.offset += 1
        return data[0]