This package permits us to use the proto.Buffer type to encode pb.Message values. The types created by protoc implement the interface defined so the Character type can be used directly:
var char = gen.Character{
Name: "George",
Surname: "Gammell Angell",
YearOfBirth: 1834,
Job: "professor emeritus",
}
b := proto.NewBuffer(nil)
if err := b.EncodeMessage(&char); err != nil {
log.Fatalln(err)
}
log.Printf("%q", b.Bytes())
The resulting encoded data has almost no overhead compared to other encoding.