|
7 | 7 | from io import BufferedIOBase |
8 | 8 | import struct |
9 | 9 |
|
| 10 | +from .types import ( |
| 11 | + int8, |
| 12 | + int16, |
| 13 | + int32, |
| 14 | + int64, |
| 15 | + uint8, |
| 16 | + uint16, |
| 17 | + uint32, |
| 18 | + uint64, |
| 19 | + float32, |
| 20 | + float64, |
| 21 | + char8, |
| 22 | + char16, |
| 23 | +) |
| 24 | + |
| 25 | + |
10 | 26 | class DataOutputStream: |
11 | 27 | def __init__(self, stream: BufferedIOBase): |
12 | 28 | self.stream = stream |
@@ -48,3 +64,40 @@ def write_int(self, val: int) -> None: |
48 | 64 | def write_unsigned_int(self, val: int) -> None: |
49 | 65 | self.stream.write(struct.pack('>I', val)) |
50 | 66 |
|
| 67 | + def write_bytes(self, val: bytes) -> None: |
| 68 | + """Write bytes to the stream.""" |
| 69 | + self.stream.write(val) |
| 70 | + |
| 71 | + # Aliases for convenience |
| 72 | + def write_char8(self, val: char8) -> None: |
| 73 | + self.write_byte(ord(val)) |
| 74 | + |
| 75 | + def write_float32(self, val: float32) -> None: |
| 76 | + self.write_float(val) |
| 77 | + |
| 78 | + def write_float64(self, val: float64) -> None: |
| 79 | + self.write_double(val) |
| 80 | + |
| 81 | + def write_int8(self, val: int8) -> None: |
| 82 | + self.write_byte(val) |
| 83 | + |
| 84 | + def write_int16(self, val: int16) -> None: |
| 85 | + self.write_short(val) |
| 86 | + |
| 87 | + def write_int32(self, val: int32) -> None: |
| 88 | + self.write_int(val) |
| 89 | + |
| 90 | + def write_int64(self, val: int64) -> None: |
| 91 | + self.write_long(val) |
| 92 | + |
| 93 | + def write_uint8(self, val: uint8) -> None: |
| 94 | + self.write_unsigned_byte(val) |
| 95 | + |
| 96 | + def write_uint16(self, val: uint16) -> None: |
| 97 | + self.write_unsigned_short(val) |
| 98 | + |
| 99 | + def write_uint32(self, val: uint32) -> None: |
| 100 | + self.write_unsigned_int(val) |
| 101 | + |
| 102 | + def write_uint64(self, val: uint64) -> None: |
| 103 | + self.stream.write(struct.pack('>Q', val)) |
0 commit comments