xiazcy commented on code in PR #3335:
URL: https://github.com/apache/tinkerpop/pull/3335#discussion_r2978124960


##########
gremlin-go/driver/graphBinary.go:
##########
@@ -681,7 +681,52 @@ func bindingWriter(value interface{}, buffer 
*bytes.Buffer, typeSerializer *grap
        return buffer.Bytes(), nil
 }
 
+// customTypeWriter handles serialization of custom types registered via 
RegisterCustomTypeWriter.
+// Format: {type_code}{type_info}{value_flag}{value}
+// where type_code=0x00 (customType), type_info is the custom type name 
length+bytes,
+// value_flag=0x00 (not null), and value is the custom-serialized data.
+func customTypeWriter(value interface{}, buffer *bytes.Buffer, typeSerializer 
*graphBinaryTypeSerializer) ([]byte, error) {
+       // Look up the custom type info
+       valType := reflect.TypeOf(value)
+       customTypeWriterLock.RLock()
+       typeInfo, exists := customSerializers[valType]
+       customTypeWriterLock.RUnlock()
+
+       if !exists || customSerializers == nil {
+               return nil, 
newError(err0407GetSerializerToWriteUnknownTypeError, valType.Name())
+       }
+
+       // Write the custom type name as a String (length prefix + UTF-8 bytes)
+       typeName := typeInfo.TypeName
+       typeNameBytes := []byte(typeName)
+       if err := binary.Write(buffer, binary.BigEndian, 
int32(len(typeNameBytes))); err != nil {
+               return nil, err
+       }
+       if _, err := buffer.Write(typeNameBytes); err != nil {
+               return nil, err
+       }
+

Review Comment:
   It doesn't look like the `{value_flag}` byte is being written here before 
`{value}` (as per IO format noted above), is there a reason?



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to