forked from BigfootDev/flatbuffers
* support for grpc golang * refactored grpc go generator * added grpc-go test and refactored * refactored idl_gen_grpc.cpp * fixed grpc generate method name * refactored flatc and fixed line length issue * added codec to go lib and fixed formatting issues * fixed spacing issues
24 lines
548 B
Go
24 lines
548 B
Go
package flatbuffers
|
|
|
|
// FlatbuffersCodec implements gRPC-go Codec which is used to encode and decode messages.
|
|
var Codec string = "flatbuffers"
|
|
|
|
type FlatbuffersCodec struct{}
|
|
|
|
func (FlatbuffersCodec) Marshal(v interface{}) ([]byte, error) {
|
|
return v.(*Builder).FinishedBytes(), nil
|
|
}
|
|
|
|
func (FlatbuffersCodec) Unmarshal(data []byte, v interface{}) error {
|
|
v.(flatbuffersInit).Init(data, GetUOffsetT(data))
|
|
return nil
|
|
}
|
|
|
|
func (FlatbuffersCodec) String() string {
|
|
return Codec
|
|
}
|
|
|
|
type flatbuffersInit interface {
|
|
Init(data []byte, i UOffsetT)
|
|
}
|