You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This document addendum to the OpenCannabis Specification enumerates Scalar Value Types, or raw native types used in
the specification. This list originates directly from
Google's Protobuf documentation.
Type
Notes
C++ Type
Java Type
Python Type
double
Generic double-precision floating point number.
double
double
float
float
Generic standard-precision floating point number.
float
float
float
int32
Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint32 instead.
int32
int
int
int64
Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint64 instead.
int64
long
int/long
uint32
Uses variable-length encoding.
uint32
int
int/long
uint64
Uses variable-length encoding.
uint64
long
int/long
sint32
Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int32s.
int32
int
int
sint64
Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int64s.
int64
long
int/long
fixed32
Always four bytes. More efficient than uint32 if values are often greater than 2^28.
uint32
int
int
fixed64
Always eight bytes. More efficient than uint64 if values are often greater than 2^56.
uint64
long
int/long
sfixed32
Always four bytes.
int32
int
int
sfixed64
Always eight bytes.
int64
long
int/long
bool
Boolean value of true or false. Default value is false.
bool
boolean
boolean
string
A string must always contain UTF-8 encoded or 7-bit ASCII text.
When a message is parsed, if the encoded message does not contain a particular singular element, the corresponding
field in the parsed object is set to the default value for that field. These defaults are type-specific:
For strings, the default value is the empty string.
For bytes, the default value is empty bytes.
For bools, the default value is false.
For numeric types, the default value is zero.
For enums, the default value is the first
defined enum value, which must be 0.
For message fields, the field is not set. Its exact value is language-dependent. See the
generated code guide for details.