Packages
protox
1.6.9
2.0.9
2.0.8
2.0.7
2.0.6
2.0.5
2.0.4
2.0.3
2.0.2
2.0.1
2.0.0
2.0.0-dev
1.7.8
1.7.7
1.7.6
1.7.5
1.7.4
retired
1.7.3
1.7.2
1.7.1
1.7.0
1.6.10
1.6.9
1.6.8
1.6.7
1.6.6
1.6.5
1.6.4
1.6.3
1.6.2
1.6.1
1.6.0
1.5.1
1.5.0
1.4.0
1.3.2
1.3.1
1.3.0
1.2.4
1.2.3
1.2.2
1.2.1
1.2.0
1.1.1
1.1.0
1.0.0
0.25.0
0.24.0
0.23.1
0.23.0
0.22.0
0.21.0
0.20.0
0.19.1
0.19.0
0.18.0
0.17.0
0.16.2
0.16.1
0.16.0
0.15.2
0.15.1
0.15.0
0.14.0
0.13.0
0.12.1
0.12.0
0.11.1
0.11.0
0.10.0
0.9.1
0.9.0
0.8.0
0.7.1
0.7.0
A fast, easy to use and 100% conformant Elixir library for Google Protocol Buffers (aka protobuf)
Current section
Files
Jump to
Current section
Files
lib/protox/types.ex
defmodule Protox.Types do
@moduledoc """
This module describes types that define a protobuf message.
See https://developers.google.com/protocol-buffers/docs/encoding#structure.
"""
@typedoc """
Variable length integer.
"""
@type wire_varint :: 0
@typedoc """
64 bits scalar.
"""
@type wire_64bits :: 1
@typedoc """
Repeated field.
"""
@type wire_delimited :: 2
@typedoc """
32 bits scalar.
"""
@type wire_32bits :: 5
@typedoc """
The wire type of a field: it tells how a field is encoded (32 or 64 bits scalar, repeated or
variable-length integer).
"""
@type tag :: wire_varint | wire_64bits | wire_delimited | wire_32bits
@typedoc """
This type give more details on how a field is encoded.
"""
@type kind :: {:scalar, any()} | :packed | :unpacked | :map | {:oneof, atom()}
@typedoc """
All types that can be used as a key in map field.
"""
@type map_key_type ::
:int32
| :int64
| :uint32
| :uint64
| :sint32
| :sint64
| :fixed32
| :fixed64
| :sfixed32
| :sfixed64
| :bool
| :string
@typedoc """
All types that can be stored in a protobuf message.
"""
@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()}
@typedoc """
This type gives more information on the field presence (if applicable).
"""
@type label ::
:none
| :optional
| :proto3_optional
| :repeated
| :required
| nil
end