Hmm, pattern matching comes to mind…
For example, pattern matching via a case statement:
project = %Project{...}
name = case project do
%{client: %{name: name}} -> name
_ -> ""
end
# as one liners
name = case project, do: (%{client: %{name: name}} -> name; _ -> "")
name = case project do %{client: %{name: name}} -> name; _ -> "" end
Or alternatively, pattern matching via function heads:
project = %Project{...}
name = get_name(project)
defp get_name(%{client: %{name: name}}, do: name
defp get_name(_project), do: ""






















