import io
import timeit

from dbus_fast._private.unmarshaller import Unmarshaller

#  cythonize -X language_level=3 -a -i  src/dbus_fast/_private/unmarshaller.py

with open("tests/data/get_managed_objects.hex") as fp:
    msg = fp.read()


stream = io.BytesIO(bytes.fromhex(msg))

unmarshaller = Unmarshaller(stream)


def unmarhsall_bluez_get_managed_objects_message():
    stream.seek(0)
    unmarshaller.reset()
    unmarshaller.unmarshall()


count = 10000
time = timeit.Timer(unmarhsall_bluez_get_managed_objects_message).timeit(count)
print(f"Unmarshalling {count} bluetooth GetManagedObjects messages took {time} seconds")
