[otBase/otConverters] Add array-writers for int types
This commit is contained in:
parent
1fd2a44bbf
commit
36dd271cd5
@ -428,22 +428,34 @@ class OTTableWriter(object):
|
||||
|
||||
def writeValue(self, typecode, value):
|
||||
self.items.append(struct.pack(f">{typecode}", value))
|
||||
def writeArray(self, typecode, values):
|
||||
a = array.array(typecode, values)
|
||||
if sys.byteorder != "big": a.byteswap()
|
||||
self.items.append(a.tobytes())
|
||||
|
||||
def writeUShort(self, value):
|
||||
assert 0 <= value < 0x10000, value
|
||||
self.items.append(struct.pack(">H", value))
|
||||
def writeUShortArray(self, values):
|
||||
self.writeArray('H', values)
|
||||
|
||||
def writeShort(self, value):
|
||||
assert -32768 <= value < 32768, value
|
||||
self.items.append(struct.pack(">h", value))
|
||||
def writeShortArray(self, values):
|
||||
self.writeArray('h', values)
|
||||
|
||||
def writeUInt8(self, value):
|
||||
assert 0 <= value < 256, value
|
||||
self.items.append(struct.pack(">B", value))
|
||||
def writeUInt8Array(self, values):
|
||||
self.writeArray('B', values)
|
||||
|
||||
def writeInt8(self, value):
|
||||
assert -128 <= value < 128, value
|
||||
self.items.append(struct.pack(">b", value))
|
||||
def writeInt8Array(self, values):
|
||||
self.writeArray('b', values)
|
||||
|
||||
def writeUInt24(self, value):
|
||||
assert 0 <= value < 0x1000000, value
|
||||
|
@ -234,6 +234,8 @@ class Long(IntValue):
|
||||
return reader.readLongArray(count)
|
||||
def write(self, writer, font, tableDict, value, repeatIndex=None):
|
||||
writer.writeLong(value)
|
||||
def writeArray(self, writer, font, tableDict, values):
|
||||
writer.writeLongArray(values)
|
||||
|
||||
class ULong(IntValue):
|
||||
staticSize = 4
|
||||
@ -243,6 +245,8 @@ class ULong(IntValue):
|
||||
return reader.readULongArray(count)
|
||||
def write(self, writer, font, tableDict, value, repeatIndex=None):
|
||||
writer.writeULong(value)
|
||||
def writeArray(self, writer, font, tableDict, values):
|
||||
writer.writeULongArray(values)
|
||||
|
||||
class Flags32(ULong):
|
||||
@staticmethod
|
||||
@ -257,6 +261,8 @@ class Short(IntValue):
|
||||
return reader.readShortArray(count)
|
||||
def write(self, writer, font, tableDict, value, repeatIndex=None):
|
||||
writer.writeShort(value)
|
||||
def writeArray(self, writer, font, tableDict, values):
|
||||
writer.writeShortArray(values)
|
||||
|
||||
class UShort(IntValue):
|
||||
staticSize = 2
|
||||
@ -266,6 +272,8 @@ class UShort(IntValue):
|
||||
return reader.readUShortArray(count)
|
||||
def write(self, writer, font, tableDict, value, repeatIndex=None):
|
||||
writer.writeUShort(value)
|
||||
def writeArray(self, writer, font, tableDict, values):
|
||||
writer.writeUShortArray(values)
|
||||
|
||||
class Int8(IntValue):
|
||||
staticSize = 1
|
||||
@ -275,6 +283,8 @@ class Int8(IntValue):
|
||||
return reader.readInt8Array(count)
|
||||
def write(self, writer, font, tableDict, value, repeatIndex=None):
|
||||
writer.writeInt8(value)
|
||||
def writeArray(self, writer, font, tableDict, values):
|
||||
writer.writeInt8Array(values)
|
||||
|
||||
class UInt8(IntValue):
|
||||
staticSize = 1
|
||||
@ -284,6 +294,8 @@ class UInt8(IntValue):
|
||||
return reader.readUInt8Array(count)
|
||||
def write(self, writer, font, tableDict, value, repeatIndex=None):
|
||||
writer.writeUInt8(value)
|
||||
def writeArray(self, writer, font, tableDict, values):
|
||||
writer.writeUInt8Array(values)
|
||||
|
||||
class UInt24(IntValue):
|
||||
staticSize = 3
|
||||
|
Loading…
x
Reference in New Issue
Block a user