Skip to content

Commit 2ba377e

Browse files
committed
feat: implement int casting for int-like types
1 parent 6b76bb3 commit 2ba377e

4 files changed

Lines changed: 16 additions & 0 deletions

File tree

libdestruct/c/c_int.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,3 +22,7 @@ def get(self: c_int) -> int:
2222
def _set(self: c_int, value: int) -> None:
2323
"""Set the value of the integer to the given value."""
2424
self.memory[self.address : self.address + self.size] = value.to_bytes(self.size, self.endianness, signed=True)
25+
26+
def __int__(self: c_int) -> int:
27+
"""Return the value of the integer."""
28+
return self.get()

libdestruct/c/c_long.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,3 +22,7 @@ def get(self: c_long) -> int:
2222
def _set(self: c_long, value: int) -> None:
2323
"""Set the value of the integer to the given value."""
2424
self.memory[self.address : self.address + self.size] = value.to_bytes(self.size, self.endianness, signed=True)
25+
26+
def __int__(self: c_long) -> int:
27+
"""Return the value of the integer."""
28+
return self.get()

libdestruct/c/c_uint.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,3 +22,7 @@ def get(self: c_uint) -> int:
2222
def _set(self: c_uint, value: int) -> None:
2323
"""Set the value of the integer to the given value."""
2424
self.memory[self.address : self.address + self.size] = value.to_bytes(self.size, self.endianness, signed=False)
25+
26+
def __int__(self: c_uint) -> int:
27+
"""Return the value of the integer."""
28+
return self.get()

libdestruct/c/c_ulong.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,3 +22,7 @@ def get(self: c_ulong) -> int:
2222
def _set(self: c_ulong, value: int) -> None:
2323
"""Set the value of the integer to the given value."""
2424
self.memory[self.address : self.address + self.size] = value.to_bytes(self.size, self.endianness, signed=False)
25+
26+
def __int__(self: c_ulong) -> int:
27+
"""Return the value of the integer."""
28+
return self.get()

0 commit comments

Comments
 (0)