Explore >> Select a destination


You are here

filipnikolovski.com
| | hannes.robur.coop
15.3 parsecs away

Travel
| |
| | darrenparkinson.uk
11.2 parsecs away

Travel
| | Injecting Trace IDs into your Logging
| | mko.re
5.9 parsecs away

Travel
| |
| | konradreiche.com
80.9 parsecs away

Travel
| Writing a generic protobuf writer in Go is straightforward. We simply use proto.Marshal with the protobuf message because proto.Marshal expects the proto.Message interface, which all generated protobuf messages implement. However, when it comes to reading serialized protobuf data into a specific Go type, historically, we had to specify the type explicitly: var post pb.Post if err := proto.Unmarshal(b, &post); err != nil { return nil, err } This approach is clear and explicit: what you see is what you get. But what if you need a more generic solution? You might encounter a scenario similar to mine: a cache abstraction designed to handle different kinds of protobuf messages generically. My initial attempt looked like this: