Packages
protox
1.2.0
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.
"""
@type wire_varint :: 0
@type wire_64bits :: 1
@type wire_delimited :: 2
@type wire_32bits :: 5
@typedoc """
The wire type of a field: it tells how a field is encoded (scalar, repeated, etc.).
"""
@type tag :: wire_varint | wire_64bits | wire_delimited | wire_32bits
@typedoc """
This type give more details on how a field is encoded.
"""
@type kind :: {:default, 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}
end