lib/slipstream/serializer.ex
defmodule Slipstream.Serializer do
@moduledoc """
A behaviour that serializes incoming and outgoing socket messages.
"""
@doc """
Encodes `Slipstream.Message` structs to binary.
"""
@callback encode!(Slipstream.Message.t(), options :: Keyword.t()) :: binary()
@doc """
Decodes binary into `Slipstream.Message` struct.
"""
@callback decode!(binary, options :: Keyword.t()) :: Slipstream.Message.t()
end