Skip to content

Commit a6afde1

Browse files
echistyakovfacebook-github-bot
authored andcommitted
Merge serializer and deserializer in serdes.go file
Summary: Marry them together. Reviewed By: podtserkovskiy Differential Revision: D71171800 fbshipit-source-id: 1f2c3fa4500c1d4ca3a4ff3ee0ae037fa9d33646
1 parent 9d91cbe commit a6afde1

File tree

2 files changed

+54
-78
lines changed

2 files changed

+54
-78
lines changed

third-party/thrift/src/thrift/lib/go/thrift/deserializer.go

-78
This file was deleted.

third-party/thrift/src/thrift/lib/go/thrift/serializer.go third-party/thrift/src/thrift/lib/go/thrift/serdes.go

+54
Original file line numberDiff line numberDiff line change
@@ -102,3 +102,57 @@ func (s *Serializer) Encode(msg types.WritableStruct) error {
102102
}
103103
return s.format.Flush()
104104
}
105+
106+
// A Deserializer is used to turn a byte stream into a Struct
107+
type Deserializer struct {
108+
format types.Format
109+
}
110+
111+
// NewBinaryDeserializer creates a new deserializer using the binary format
112+
func NewBinaryDeserializer(readWriter types.ReadWriteSizer) *Deserializer {
113+
return &Deserializer{format: NewBinaryFormat(readWriter)}
114+
}
115+
116+
// NewCompactDeserializer creates a new deserializer using the compact format
117+
func NewCompactDeserializer(readWriter types.ReadWriteSizer) *Deserializer {
118+
return &Deserializer{format: NewCompactFormat(readWriter)}
119+
}
120+
121+
// NewCompactJSONDeserializer creates a new deserializer using the JSON format
122+
func NewCompactJSONDeserializer(readWriter io.ReadWriter) *Deserializer {
123+
return &Deserializer{format: NewCompactJSONFormat(readWriter)}
124+
}
125+
126+
// NewSimpleJSONDeserializer creates a new deserializer using the simple JSON format
127+
func NewSimpleJSONDeserializer(readWriter io.ReadWriter) *Deserializer {
128+
return &Deserializer{format: NewSimpleJSONFormat(readWriter)}
129+
}
130+
131+
// DecodeCompact deserializes a compact format message
132+
func DecodeCompact(data []byte, msg types.ReadableStruct) error {
133+
reader := bytes.NewBuffer(data)
134+
return NewCompactDeserializer(reader).Decode(msg)
135+
}
136+
137+
// DecodeBinary deserializes a binary format message
138+
func DecodeBinary(data []byte, msg types.ReadableStruct) error {
139+
reader := bytes.NewBuffer(data)
140+
return NewBinaryDeserializer(reader).Decode(msg)
141+
}
142+
143+
// DecodeCompactJSON deserializes a compact JSON format message
144+
func DecodeCompactJSON(data []byte, msg types.ReadableStruct) error {
145+
reader := bytes.NewBuffer(data)
146+
return NewCompactJSONDeserializer(reader).Decode(msg)
147+
}
148+
149+
// DecodeSimpleJSON deserializes a simple JSON format message
150+
func DecodeSimpleJSON(data []byte, msg types.ReadableStruct) error {
151+
reader := bytes.NewBuffer(data)
152+
return NewSimpleJSONDeserializer(reader).Decode(msg)
153+
}
154+
155+
// Decode deserializes a Thrift struct from the underlying format
156+
func (d *Deserializer) Decode(msg types.ReadableStruct) error {
157+
return msg.Read(d.format)
158+
}

0 commit comments

Comments
 (0)