Protobuf
Basic Protobuf
-
Google's docs - https://developers.google.com/protocol-buffers/docs/proto
- message - like a class
- required
- optional
- repeated
- Map - can be made with a sub-message and then repeated
- enums - for enum entries should prefix by enum type name to ensure uniqueness (enum entries are like globals)
BuildPartial and partial messages
- MessageLiteOrBuilder.isInitialized()
- Checks if we have all required fields before building
- Avoids a RUNTIME exception (UninitializedMessageException) if missing required fields.
- buildPartial() - builds a partial message, ignoring any missing required fields