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  }