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