Current section

Files

Jump to
grizzly lib grizzly node association.ex
Raw

lib/grizzly/node/association.ex

defmodule Grizzly.Node.Association do
@moduledoc """
This module is useful for working with Z-Wave Node
Associations
"""
alias Grizzly.Node
@type t :: %__MODULE__{
group: byte,
nodes: [Node.node_id()]
}
@type group :: byte
@enforce_keys [:group]
defstruct group: nil, nodes: []
@spec new(group, [Node.node_id()]) :: t
def new(group, nodes \\ []) do
struct(__MODULE__, group: group, nodes: nodes)
end
@spec to_keyword(t) :: keyword
def to_keyword(%__MODULE__{} = association) do
association
|> Map.from_struct()
|> Enum.into([])
end
end