Packages
protox
0.14.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/guards.ex
defmodule Protox.Guards do
@moduledoc false
# Provides macros to be used as guards when checking types is needed.
@primitive_fixed32 [
:fixed32, :sfixed32, :float,
]
@primitive_fixed64 [
:fixed64, :sfixed64, :double,
]
@primitive_fixed @primitive_fixed32 ++ @primitive_fixed64
@primitive_varint [
:int32, :uint32, :sint32, :int64, :uint64, :sint64, :bool
]
@primitives @primitive_varint ++ @primitive_fixed
defmacro is_primitive(type) do
quote do: unquote(type) in unquote(@primitives)
end
defmacro is_primitive_varint(type) do
quote do: unquote(type) in unquote(@primitive_varint)
end
defmacro is_primitive_fixed32(type) do
quote do: unquote(type) in unquote(@primitive_fixed32)
end
defmacro is_primitive_fixed64(type) do
quote do: unquote(type) in unquote(@primitive_fixed64)
end
defmacro is_primitive_fixed(type) do
quote do: unquote(type) in unquote(@primitive_fixed)
end
defmacro is_delimited(type) do
quote do
unquote(type) == :string or unquote(type) == :bytes or\
unquote(type) == Protox.Message
end
end
end