Current section

Files

Jump to
git_hub_actions lib git_hub_actions access.ex
Raw

lib/git_hub_actions/access.ex

defmodule GitHubActions.Access do
@moduledoc false
def get(keywords, key, default) when is_atom(key) do
Keyword.get(keywords, key, default)
end
def get(keywords, [key], default) when is_atom(key) do
Keyword.get(keywords, key, default)
end
def get(keywords, [key | keys], default) when is_atom(key) do
case Keyword.fetch(keywords, key) do
{:ok, next} -> get(next, keys, default)
:error -> default
end
end
def fetch(keywords, key) when is_atom(key) do
Keyword.fetch(keywords, key)
end
def fetch(keywords, [key]) when is_atom(key) do
Keyword.fetch(keywords, key)
end
def fetch(keywords, [key | keys]) when is_atom(key) do
with {:ok, next} <- Keyword.fetch(keywords, key) do
fetch(next, keys)
end
end
def fetch!(keywords, key) when is_atom(key) do
Keyword.fetch!(keywords, key)
end
def fetch!(keywords, [key]) when is_atom(key) do
Keyword.fetch!(keywords, key)
end
def fetch!(keywords, [key | keys]) when is_atom(key) do
keywords |> Keyword.fetch!(key) |> fetch!(keys)
end
end