github.com/batchcorp/thrift-iterator@v0.0.0-20220918180557-4c4a158fc6e9/raw/encode_struct.go (about) 1 package raw 2 3 import ( 4 "github.com/batchcorp/thrift-iterator/spi" 5 "github.com/batchcorp/thrift-iterator/protocol" 6 ) 7 8 type rawStructEncoder struct { 9 } 10 11 func (encoder *rawStructEncoder) Encode(val interface{}, stream spi.Stream) { 12 obj := val.(Struct) 13 stream.WriteStructHeader() 14 for fieldId, field := range obj { 15 stream.WriteStructField(field.Type, fieldId) 16 stream.Write(field.Buffer) 17 } 18 stream.WriteStructFieldStop() 19 } 20 21 func (encoder *rawStructEncoder) ThriftType() protocol.TType { 22 return protocol.TypeStruct 23 }