Skip to main content

lib/systemd/unit_file_status.ex

defmodule Systemd.UnitFileStatus do
  @moduledoc """
  Unit-file status returned by systemd's `ListUnitFiles` D-Bus method.
  """

  @enforce_keys [:path, :state]
  @type t :: %__MODULE__{
          path: String.t(),
          state: String.t()
        }

  defstruct [:path, :state]

  @doc false
  @spec new(String.t(), String.t()) :: t()
  def new(path, state) when is_binary(path) and is_binary(state) do
    %__MODULE__{path: path, state: state}
  end

  @doc false
  @spec from_dbus(tuple() | list()) :: t()
  def from_dbus({path, state}), do: from_dbus([path, state])
  def from_dbus([path, state]), do: new(path, state)
end