lib/jeff/events/keypress.ex

defmodule Jeff.Events.Keypress do
  @moduledoc """
  Event that is triggered when readers receive input to keypads
  """

  @type t :: %__MODULE__{
          address: Jeff.osdp_address(),
          count: non_neg_integer(),
          keys: binary(),
          reader: non_neg_integer()
        }

  defstruct ~w[address count keys reader]a

  alias Jeff.Reply

  @spec from_reply(Reply.t()) :: t()
  def from_reply(reply) do
    %__MODULE__{
      address: reply.address,
      count: reply.data.count,
      keys: reply.data.keys,
      reader: reply.data.reader
    }
  end
end