github.com/batchcorp/thrift-iterator@v0.0.0-20220918180557-4c4a158fc6e9/raw/encode_map.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 rawMapEncoder struct { 9 } 10 11 func (encoder *rawMapEncoder) Encode(val interface{}, stream spi.Stream) { 12 obj := val.(Map) 13 length := len(obj.Entries) 14 stream.WriteMapHeader(obj.KeyType, obj.ElementType, length) 15 for _, entry := range obj.Entries { 16 stream.Write(entry.Key) 17 stream.Write(entry.Element) 18 } 19 } 20 21 func (encoder *rawMapEncoder) ThriftType() protocol.TType { 22 return protocol.TypeMap 23 }