stdc.pyi 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. from typing import Self, ClassVar
  2. intptr = int
  3. def malloc(size: int) -> intptr: ...
  4. def free(ptr: intptr) -> None: ...
  5. def memcpy(dst: intptr, src: intptr, n: int) -> None: ...
  6. def memset(s: intptr, c: int, n: int) -> None: ...
  7. def memcmp(s1: intptr, s2: intptr, n: int) -> int: ...
  8. def read_cstr(p: intptr) -> str: ...
  9. def read_bytes(p: intptr, n: int) -> bytes: ...
  10. def write_cstr(p: intptr, data: str) -> None: ...
  11. def write_bytes(p: intptr, data: bytes) -> None: ...
  12. class Memory:
  13. size: ClassVar[int]
  14. class _BuiltinMemory[T](Memory):
  15. value: T
  16. def __new__(cls, value: T | None = None) -> None: ...
  17. @staticmethod
  18. def read(p: intptr, offset: int) -> T: ...
  19. @staticmethod
  20. def write(p: intptr, offset: int, value: T) -> None: ...
  21. @classmethod
  22. def array(cls, length: int) -> Self: ...
  23. def __getitem__(self, index: int) -> T: ...
  24. def __setitem__(self, index: int, value: T) -> None: ...
  25. class Char(_BuiltinMemory[int]): ...
  26. class UChar(_BuiltinMemory[int]): ...
  27. class Short(_BuiltinMemory[int]): ...
  28. class UShort(_BuiltinMemory[int]): ...
  29. class Int(_BuiltinMemory[int]): ...
  30. class UInt(_BuiltinMemory[int]): ...
  31. class Long(_BuiltinMemory[int]): ...
  32. class ULong(_BuiltinMemory[int]): ...
  33. class LongLong(_BuiltinMemory[int]): ...
  34. class ULongLong(_BuiltinMemory[int]): ...
  35. class Float(_BuiltinMemory[float]): ...
  36. class Double(_BuiltinMemory[float]): ...
  37. class Pointer(_BuiltinMemory[intptr]): ...
  38. class Bool(_BuiltinMemory[bool]): ...
  39. Int8: _BuiltinMemory[int]
  40. UInt8: _BuiltinMemory[int]
  41. Int16: _BuiltinMemory[int]
  42. UInt16: _BuiltinMemory[int]
  43. Int32: _BuiltinMemory[int]
  44. UInt32: _BuiltinMemory[int]
  45. Int64: _BuiltinMemory[int]
  46. UInt64: _BuiltinMemory[int]
  47. SizeT: _BuiltinMemory[int]
  48. IntptrT: _BuiltinMemory[int]
  49. UintptrT: _BuiltinMemory[int]
  50. def addressof(obj: Memory) -> intptr: ...
  51. def sizeof(obj: type[Memory]) -> int: ...