defmodule Systemd.SocketState do
@moduledoc """
Common state properties for a systemd socket object.
"""
@type t :: %__MODULE__{
result: String.t() | nil,
listen: [term()] | nil,
accept: boolean() | nil,
n_connections: non_neg_integer() | nil
}
defstruct [:result, :listen, :accept, :n_connections]
@doc false
@spec from_properties(map()) :: t()
def from_properties(properties) when is_map(properties) do
%__MODULE__{
result: Map.get(properties, "Result"),
listen: Map.get(properties, "Listen"),
accept: Map.get(properties, "Accept"),
n_connections: Map.get(properties, "NConnections")
}
end
end