| 196 | } |
| 197 | |
| 198 | private getRootSerializer(serializer: Serializer) { |
| 199 | let rootSerializer = this.rootSerializers.get(serializer); |
| 200 | if (rootSerializer !== undefined) { |
| 201 | return rootSerializer; |
| 202 | } |
| 203 | const writeContext = this.writeContext; |
| 204 | const writer = writeContext.writer; |
| 205 | const rootHeader = ConfigFlags.isCrossLanguageFlag; |
| 206 | rootSerializer = (data: any) => { |
| 207 | writeContext.reset(); |
| 208 | writer.writeUint8(rootHeader); |
| 209 | writer.reserve(serializer.fixedSize); |
| 210 | serializer.writeRef(data); |
| 211 | return writer.dump(); |
| 212 | }; |
| 213 | this.rootSerializers.set(serializer, rootSerializer); |
| 214 | return rootSerializer; |
| 215 | } |
| 216 | |
| 217 | private getRootDeserializer(serializer: Serializer) { |
| 218 | let rootDeserializer = this.rootDeserializers.get(serializer); |