Protox.Types (Protox v2.0.4)

View Source

This module describes the types that define a protobuf message.

See https://developers.google.com/protocol-buffers/docs/encoding#structure.

Summary

Types

This type gives more information on the field presence (if applicable).

All types that can be used as a key in a map field.

The wire type of a field: it tells how a field is encoded (32 or 64 bits scalar, repeated or variable-length integer).

All the types that can be stored in a protobuf message.

32 bits scalar.

64 bits scalar.

Repeated field.

Variable length integer.

Types

label()

@type label() :: :none | :optional | :proto3_optional | :repeated | :required | nil

This type gives more information on the field presence (if applicable).

map_key()

@type map_key() ::
  :int32
  | :int64
  | :uint32
  | :uint64
  | :sint32
  | :sint64
  | :fixed32
  | :fixed64
  | :sfixed32
  | :sfixed64
  | :bool
  | :string

All types that can be used as a key in a map field.

tag()

@type tag() :: wire_varint() | wire_64bits() | wire_delimited() | wire_32bits()

The wire type of a field: it tells how a field is encoded (32 or 64 bits scalar, repeated or variable-length integer).

type()

@type type() ::
  :fixed32
  | :sfixed32
  | :float
  | :fixed64
  | :sfixed64
  | :double
  | :int32
  | :uint32
  | :sint32
  | :int64
  | :uint64
  | :sint64
  | :bool
  | :string
  | :bytes
  | {:enum, atom()}
  | {:message, atom()}
  | {map_key(), type()}

All the types that can be stored in a protobuf message.

wire_32bits()

@type wire_32bits() :: 5

32 bits scalar.

wire_64bits()

@type wire_64bits() :: 1

64 bits scalar.

wire_delimited()

@type wire_delimited() :: 2

Repeated field.

wire_varint()

@type wire_varint() :: 0

Variable length integer.