These datatypes represent numbers. Most of them don't take any arguments. They default to big-endian encoding. To use little-endian, prefix its name with "l".
| Name | Size in bytes | Example of value | Also called |
|---|---|---|---|
| i8 | 1 | -125 | byte |
| u8 | 1 | 255 | unsigned byte |
| i16 | 2 | -32000 | short |
| u16 | 2 | 60000 | unsigned short |
| i32 | 4 | -2000000000 | int |
| u32 | 4 | 3000000000 | unsigned int |
| f32 | 4 | 4.5 | float |
| f64 | 8 | 4.5 | double |
| i64 | 8 | 1 | long |
| u64 | 8 | 1 | unsigned long |
| varint | 1-4 | 300 | int var |
| varint64 | 1-8 | 300n | unsigned long |
| varint128 | 1-16 | 2 ^ 68 | unsigned __int128 |
| zigzag32 | 1-4 | -100 | signed int var |
| zigzag64 | 1-8 | -680n | signed long |
Arguments:
- size : fixed size in bytes
Represents a unsigned integer using size bytes.
Example:
[
"int",
{ "size": "3" }
]Example of value: 65535 (size = 2) / 16777215 (size = 3)
Arguments: None
Protobuf-compatible representation for variable-length integers using one or more bytes. Intended for 32-bit unsigned integers, or signed 32-bit integers that have been directly cast to an integer (where the MSB is the sign bit) before encoding.
Example of value: 300 (size is 2 bytes)
Arguments: None
Same as varint, but for 64-bit unsigned integers, or signed 64-bit integers that have been directly cast to an integer (where the MSB is the sign bit) before encoding.
Arguments: None
Same as varint, but for 128-bit unsigned integers, or signed 128-bit integers that have been directly cast to an integer (where the MSB is the sign bit) before encoding.
Arguments: None
Similar to varint, except using ZigZag encoding for signed integers. Intended for 32-bit signed numbers.
Arguments: None
Same as zigzag32, but for 64-bit signed integers in ZigZag encoding.