diff options
Diffstat (limited to 'deps/gsms/src/gsms_lib.erl')
-rw-r--r-- | deps/gsms/src/gsms_lib.erl | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/deps/gsms/src/gsms_lib.erl b/deps/gsms/src/gsms_lib.erl new file mode 100644 index 0000000..187aefd --- /dev/null +++ b/deps/gsms/src/gsms_lib.erl @@ -0,0 +1,25 @@ +-module(gsms_lib). + +-export([get_opt/2, + get_opt/3]). + +get_opt(K, Opts) when is_atom(K) -> + case lists:keyfind(K, 1, Opts) of + false -> erlang:error({mandatory, K}); + {_, V} -> V + end; +get_opt({K, Def}, Opts) -> + get_opt(K, Opts, Def). + +get_opt(K, Opts, Def) -> + case lists:keyfind(K, 1, Opts) of + false when is_function(Def, 0) -> + Def(); + false when Def == '$mandatory' -> + error({mandatory, K}); + false -> + Def; + {_, V} -> + V + end. + |