lib/hts221/io_write.ex

defmodule HTS221.IOWrite do
  @moduledoc """
  Data structure about writing to registers

  This is only useful if you are implementing the `HTS221.Register` protocol.

  This only has one field `:payload` but the register you writing to should be
  the first byte in the binary.

  ```
  register = 0x01

  %HTS221.IOWrite{
    payload: <<register, 0x01>>
  }
  ```

  The above example says to write `0x01` to the `0x01` register.
  """

  @type t() :: %__MODULE__{
          payload: binary()
        }

  @enforce_keys [:payload]
  defstruct payload: nil

  @doc """
  Create a new `HTSS221.IOWrite` data structure
  """
  @spec new(binary()) :: t()
  def new(payload) do
    %__MODULE__{payload: payload}
  end
end