Packages
protox
1.7.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/json_message_encoder.ex
defprotocol Protox.JsonMessageEncoder do
@moduledoc """
This protocol makes possible to override the JSON encoding of a specific message.
For instance, it's possible to encode
[Google.Protobuf.Duration](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#google.protobuf.Duration)
as a string rather than
an object as required by the [JSON encoding specification](https://developers.google.com/protocol-buffers/docs/proto3#json).
"""
@doc """
The contract of a message encoder.
- `msg` is the protobuf message to encode
- `json_encode` is the function to use in the protocol implementation to encode values to JSON
"""
@doc since: "1.6.0"
@fallback_to_any true
@spec encode_message(struct(), (any() -> iodata())) :: iodata()
def encode_message(msg, json_encode)
end
defimpl Protox.JsonMessageEncoder, for: Any do
def encode_message(msg, json_encode) do
Protox.JsonEncode.encode_message(msg, json_encode)
end
end