| 9065 | |
| 9066 | @functools.total_ordering |
| 9067 | class StructArray(object): |
| 9068 | __slots__ = "f1", "f2", "f3", "f4", "f5", "f6", "f7", "f8", "f9", "f10", |
| 9069 | |
| 9070 | def __init__(self, f1=None, f2=None, f3=None, f4=None, f5=None, f6=None, f7=None, f8=None, f9=None, f10=None): |
| 9071 | if f1 is None: |
| 9072 | f1 = [0]*2 |
| 9073 | if f2 is None: |
| 9074 | f2 = [None]*2 |
| 9075 | if f3 is None: |
| 9076 | f3 = [bytearray()]*2 |
| 9077 | if f4 is None: |
| 9078 | f4 = [None]*2 |
| 9079 | if f5 is None: |
| 9080 | f5 = [EnumSimple()]*2 |
| 9081 | if f6 is None: |
| 9082 | f6 = [None]*2 |
| 9083 | if f7 is None: |
| 9084 | f7 = [FlagsSimple()]*2 |
| 9085 | if f8 is None: |
| 9086 | f8 = [None]*2 |
| 9087 | if f9 is None: |
| 9088 | f9 = [StructSimple()]*2 |
| 9089 | if f10 is None: |
| 9090 | f10 = [None]*2 |
| 9091 | self.f1 = f1 |
| 9092 | self.f2 = f2 |
| 9093 | self.f3 = f3 |
| 9094 | self.f4 = f4 |
| 9095 | self.f5 = f5 |
| 9096 | self.f6 = f6 |
| 9097 | self.f7 = f7 |
| 9098 | self.f8 = f8 |
| 9099 | self.f9 = f9 |
| 9100 | self.f10 = f10 |
| 9101 | |
| 9102 | # Struct shallow copy |
| 9103 | def copy(self, other): |
| 9104 | self.f1 = other.f1 |
| 9105 | self.f2 = other.f2 |
| 9106 | self.f3 = other.f3 |
| 9107 | self.f4 = other.f4 |
| 9108 | self.f5 = other.f5 |
| 9109 | self.f6 = other.f6 |
| 9110 | self.f7 = other.f7 |
| 9111 | self.f8 = other.f8 |
| 9112 | self.f9 = other.f9 |
| 9113 | self.f10 = other.f10 |
| 9114 | return self |
| 9115 | |
| 9116 | # Struct deep clone |
| 9117 | def clone(self): |
| 9118 | # Serialize the struct to the FBE stream |
| 9119 | writer = StructArrayModel(fbe.WriteBuffer()) |
| 9120 | writer.serialize(self) |
| 9121 | |
| 9122 | # Deserialize the struct from the FBE stream |
| 9123 | reader = StructArrayModel(fbe.ReadBuffer()) |
| 9124 | reader.attach_buffer(writer.buffer) |
no outgoing calls