Protocol Buffer Types: Difference between revisions

From NovaOrdis Knowledge Base
Jump to navigation Jump to search
Line 54: Line 54:
=<span id='Enum'></span><tt>enum</tt>=
=<span id='Enum'></span><tt>enum</tt>=


The <code>enum</code> must start with the tag 0. The default value is the first value.
The <code>enum</code> must start with the tag 0. The default value is the first value. Always start an <code>enum</code>


<code>enum</code>s can be defined at the top level of a <code>.proto</code> or they can be embedded.
<code>enum</code>s can be defined at the top level of a <code>.proto</code> or they can be embedded.

Revision as of 22:56, 7 May 2024

Internal

Overview

String

string some_string = 1;

The default value is empty string (""). The field contains UTF-8 encoded or 7-bit ASCII text.

Boolean

bool some_bool = 1;

The default value is false.

Scalar Number Types

int32

int32 some_int = 1;

The default value is 0.

uint32

sint32

fixed32

sfixed32

int64

uint64

sint64

fixed64

sfixed64

float

double

Bytes

bytes some_bytes = 1;

The default value is the empty byte array.

List (Array)

repeated <some_other_type> <field_name> = <tag>;

Example:

repeated int32 sizes = 1;
repeated string names = 1;

The default value is the empty list.

enum

The enum must start with the tag 0. The default value is the first value. Always start an enum

enums can be defined at the top level of a .proto or they can be embedded.

enum DayOfTheWeek {
  UNKNOWN_DAY_OF_WEEK = 0;
  MONDAY_DAY_OF_WEEK = 1;
  TUESDAY_DAY_OF_WEEK = 2;
  WEDNESDAY_DAY_OF_WEEK = 3;
  THURSDAY_DAY_OF_WEEK = 4;
  FRIDAY_DAY_OF_WEEK = 5;
  SATURDAY_DAY_OF_WEEK = 6;
  SUNDAY_DAY_OF_WEEK = 7;
}
message Something {
    DayOfTheWeek day_of_the_week = 1;
}