View Source Exrpc.Codec (exrpc v0.3.6)
Binary protocol for Exrpc.
Examples
iex> Exrpc.Codec.encode(:mfa_list)
"?"
iex> Exrpc.Codec.decode("?")
:mfa_list
iex> bin = Exrpc.Codec.encode([1, [1, 2, 3]])
<<33, 131, 108, 0, 0, 0, 2, 97, 1, 107, 0, 3, 1, 2, 3, 106>>
iex> Exrpc.Codec.decode(bin)
[1, [1, 2, 3]]
iex> bin = Exrpc.Codec.encode({:goodrpc, "hello"})
<<2, 131, 109, 0, 0, 0, 5, 104, 101, 108, 108, 111>>
iex> Exrpc.Codec.decode(bin)
{:goodrpc, "hello"}
iex> Exrpc.Codec.encode({:badrpc, :invalid_request})
<<4>>
iex> Exrpc.Codec.decode(<<4>>)
{:badrpc, :invalid_request}
iex> bin = Exrpc.Codec.encode({:badrpc, %ArgumentError{message: "ugh"}})
<<5, 131, 116, 0, 0, 0, 3, 119, 7, 109, 101, 115, 115, 97, 103, 101, 109, 0, 0, 0, 3, 117, 103, 104, 119, 10, 95, 95, 115, 116, 114, 117, 99, 116, 95, 95, 119, 20, 69, 108, 105, 120, 105, 114, 46, 65, 114, 103, 117, 109, 101, 110, 116, 69, 114, 114, 111, 114, 119, 13, 95, 95, 101, 120, 99, 101, 112, 116, 105, 111, 110, 95, 95, 119, 4, 116, 114, 117, 101>>
iex> Exrpc.Codec.decode(bin)
{:badrpc, %ArgumentError{message: "ugh"}}