Protox.Types (Protox v1.6.3) View Source

This module describes types that define a protobuf message.

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

Link to this section Summary

Types

This type give more details on how a field is encoded.

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

All types that can be used as a key in 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 types that can be stored in a protobuf message.

32 bits scalar.

64 bits scalar.

Repeated field.

Variable length integer.

Link to this section Types

Specs

kind() :: {:scalar, any()} | :packed | :unpacked | :map | {:oneof, atom()}

This type give more details on how a field is encoded.

Specs

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

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

Specs

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

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

Specs

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

Specs

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

All types that can be stored in a protobuf message.

Specs

wire_32bits() :: 5

32 bits scalar.

Specs

wire_64bits() :: 1

64 bits scalar.

Specs

wire_delimited() :: 2

Repeated field.

Specs

wire_varint() :: 0

Variable length integer.