Implement write for Boolean, ByteArray and String
This commit is contained in:
parent
1f3cafd8b3
commit
98bcd88cb4
@ -82,17 +82,37 @@ class CslaBinaryWriter:
|
||||
|
||||
def write_object(self, value):
|
||||
# CslaBinaryWriter.Write(...)
|
||||
raise NotImplementedError('Writing objects of dynamic type is not yet implemented')
|
||||
if isinstance(value, bool):
|
||||
return self.write_object_bool(value)
|
||||
|
||||
if isinstance(value, bytes):
|
||||
return self.write_object_bytearray(value)
|
||||
|
||||
if isinstance(value, str):
|
||||
return self.write_object_string(value)
|
||||
|
||||
raise NotImplementedError('CslaBinaryWriter.Write not implemented for type {}'.format(type(value).__name__))
|
||||
|
||||
def write_object_bool(self, value):
|
||||
# CslaBinaryWriter.Write(bool)
|
||||
self.stream.write(bytes([CslaKnownTypes.Boolean.value, 1 if value else 0]))
|
||||
|
||||
def write_object_bytearray(self, value):
|
||||
# CslaBinaryWriter.Write(byte[])
|
||||
self.stream.write(bytes([CslaKnownTypes.ByteArray.value]))
|
||||
self.write_int32(len(value))
|
||||
self.stream.write(value)
|
||||
|
||||
def write_object_int32(self, value):
|
||||
# CslaBinaryWriter.Write(int)
|
||||
self.stream.write(bytes([CslaKnownTypes.Int32.value]))
|
||||
self.write_int32(value)
|
||||
|
||||
def write_object_string(self, value):
|
||||
# CslaBinaryWriter.Write(string)
|
||||
self.stream.write(bytes([CslaKnownTypes.String.value]))
|
||||
self.write_string(value)
|
||||
|
||||
def write_object_system_string(self, value):
|
||||
# CslaBinaryWriter.WriteSystemString
|
||||
if value in self.keywords_dictionary:
|
||||
|
Loading…
x
Reference in New Issue
Block a user