blob: e7dabd3c69a0de213ff26ddcd3f13e5ca4d17453 [file] [log] [blame]
Ronak Jaina31ddd22016-12-06 02:50:38 +05301package flatbuffers
2
wvo9ec93032016-12-21 21:57:10 +00003// Codec implements gRPC-go Codec which is used to encode and decode messages.
4var Codec = "flatbuffers"
Ronak Jaina31ddd22016-12-06 02:50:38 +05305
6type FlatbuffersCodec struct{}
7
8func (FlatbuffersCodec) Marshal(v interface{}) ([]byte, error) {
9 return v.(*Builder).FinishedBytes(), nil
10}
11
12func (FlatbuffersCodec) Unmarshal(data []byte, v interface{}) error {
13 v.(flatbuffersInit).Init(data, GetUOffsetT(data))
14 return nil
15}
16
17func (FlatbuffersCodec) String() string {
18 return Codec
19}
20
21type flatbuffersInit interface {
22 Init(data []byte, i UOffsetT)
23}