message Request { // Only set when it is a Bitcoin request. optional BitcoinData bitcoin_data = 1; // Only set when it is a Stock request. optional StockData stock_data = 2; }
message Request { // Only set when it is a Bitcoin request. optional BitcoinData bitcoin_data = 1; // Only set when it is a Stock request. optional StockData stock_data = 2; } message Request { // Will be either BitcoinData or StockData. optional google.protobuf.Any request_data = 1; } ↓
class AnyMessage( val typeUrl: String, val value: ByteString = ByteString.EMPTY ) : Message(ADAPTER, ByteString.EMPTY) { fun unpack(adapter: ProtoAdapter): T fun unpackOrNull(adapter: ProtoAdapter): T? companion object { fun pack(message: Message<*, *>): AnyMessage } }
class AnyMessage( val typeUrl: String, val value: ByteString = ByteString.EMPTY ) : Message(ADAPTER, ByteString.EMPTY) { fun unpack(adapter: ProtoAdapter): T fun unpackOrNull(adapter: ProtoAdapter): T? companion object { fun pack(message: Message<*, *>): AnyMessage } }