Current section
Files
Jump to
Current section
Files
lib/rafted_value/pid_set.ex
use Croma
defmodule RaftedValue.PidSet do
@moduledoc false
@type t :: %{pid => true}
defun validate(v :: any) :: Croma.Result.t(t) do
m when is_map(m) -> {:ok, m}
_ -> {:error, {:invalid_value, [__MODULE__]}}
end
defun new :: t , do: %{}
defun size(set :: t) :: non_neg_integer, do: map_size(set)
defun put(set :: t, pid :: pid) :: t , do: Map.put(set, pid, true)
defun delete(set :: t, pid :: pid) :: t , do: Map.delete(set, pid)
defun to_list(set :: t) :: [pid] , do: Map.keys(set)
defun member?(set :: t, pid :: pid) :: boolean , do: Map.has_key?(set, pid)
end