View Source Protox.Types (Protox v1.7.3)

This module describes types that define a protobuf message.

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

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.

Types

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

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

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

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

@type 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.

@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() ::
  :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.

@type wire_32bits() :: 5

32 bits scalar.

@type wire_64bits() :: 1

64 bits scalar.

@type wire_delimited() :: 2

Repeated field.

@type wire_varint() :: 0

Variable length integer.