MqttX.Payload behaviour (MqttX v0.7.0)

View Source

Behaviour for payload codecs.

Payload codecs handle encoding and decoding of MQTT message payloads.

Built-in Codecs

Custom Codec Example

defmodule MyCodec do
  @behaviour MqttX.Payload

  @impl true
  def encode(term) do
    {:ok, :erlang.term_to_binary(term)}
  end

  @impl true
  def decode(binary) do
    {:ok, :erlang.binary_to_term(binary)}
  end
end

Summary

Callbacks

Decode a binary to a term.

Encode a term to binary.

Functions

Decode using the specified codec.

Encode using the specified codec.

Callbacks

decode(binary)

@callback decode(binary()) :: {:ok, term()} | {:error, term()}

Decode a binary to a term.

encode(term)

@callback encode(term()) :: {:ok, binary()} | {:error, term()}

Encode a term to binary.

Functions

decode(codec, binary)

@spec decode(module(), binary()) :: {:ok, term()} | {:error, term()}

Decode using the specified codec.

encode(codec, term)

@spec encode(module(), term()) :: {:ok, binary()} | {:error, term()}

Encode using the specified codec.