Packages

A set of functions to easily use "Optional" types in Elixir

Current section

Files

Jump to
ex_optional lib map map.ex
Raw

lib/map/map.ex

defmodule ExOptional.Map do
@moduledoc """
`ExOptional.Enum` provides a (minimal) set of `Map`-related functions to work with "Optional" types.
"""
@doc """
Calls `Map.get/2` on the value of a success Optional and returns the value as an Optional, or returns a failed Optional.
## Examples
iex> ExOptional.get( { :ok, %{ key: "value" } }, :key )
{ :ok, "value" }
iex> ExOptional.get( { :ok, %{ key: "value" } }, :unknown )
{ :ok, nil }
iex> ExOptional.get( { :no, %{ key: "value" } }, :unknown )
{ :no, nil }
"""
def get( opt, key ) do
try do
case opt do
{ :ok, map } ->
{ :ok, Map.get( map, key ) }
_ ->
{ :no, nil }
end
rescue
_ -> { :no, nil }
end
end
end