Packages
protox
1.2.2
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/default.ex
defmodule Protox.Default do
@moduledoc """
Default values of Protocol Buffers types.
Note that generated structs contain a default/1 function to return the default
value of a field using its name.
"""
@doc """
Returns the default value of a Protocol Buffer type specified with an atom.
"""
@spec default(atom | {atom, atom}) :: false | integer | float | binary | nil | atom
def default(:bool), do: false
def default(:int32), do: 0
def default(:uint32), do: 0
def default(:int64), do: 0
def default(:uint64), do: 0
def default(:sint32), do: 0
def default(:sint64), do: 0
def default(:fixed64), do: 0
def default(:sfixed64), do: 0
def default(:fixed32), do: 0
def default(:sfixed32), do: 0
def default(:double), do: 0.0
def default(:float), do: 0.0
def default(:string), do: ""
def default(:bytes), do: <<>>
def default({:enum, e}), do: e.default()
def default({:message, _}), do: nil
end