Current section
Files
Jump to
Current section
Files
src/yodel@options.erl
-module(yodel@options).
-compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch, inline]).
-define(FILEPATH, "src/yodel/options.gleam").
-export([new_resolve_options/2, new/6, default/0, with_format/2, with_resolve_enabled/2, with_resolve_mode/2, with_config_base_name/2, with_profile_env_var/2, with_profiles/2, get_format/1, is_resolve_enabled/1, get_resolve_mode/1, get_config_base_name/1, get_profile_env_var/1, get_profiles/1]).
-export_type([options/0, format/0, resolve_mode/0, resolve_options/0]).
-if(?OTP_RELEASE >= 27).
-define(MODULEDOC(Str), -moduledoc(Str)).
-define(DOC(Str), -doc(Str)).
-else.
-define(MODULEDOC(Str), -compile([])).
-define(DOC(Str), -compile([])).
-endif.
?MODULEDOC(
" Configuration options for loading and parsing config files.\n"
"\n"
" **Note:** These types are re-exported from the main `yodel` module.\n"
" Use the builder functions in `yodel` to construct options rather than\n"
" importing this module directly.\n"
).
-opaque options() :: {options,
format(),
resolve_options(),
binary(),
binary(),
list(binary())}.
-type format() :: auto | json | toml | yaml.
-type resolve_mode() :: strict | lenient.
-type resolve_options() :: {resolve_options, boolean(), resolve_mode()}.
-file("src/yodel/options.gleam", 65).
?DOC(false).
-spec new_resolve_options(boolean(), resolve_mode()) -> resolve_options().
new_resolve_options(Enabled, Mode) ->
{resolve_options, Enabled, Mode}.
-file("src/yodel/options.gleam", 47).
?DOC(false).
-spec new(
format(),
boolean(),
resolve_mode(),
binary(),
binary(),
list(binary())
) -> options().
new(
Format,
Resolve_enabled,
Resolve_mode,
Config_base_name,
Profile_env_var,
Profiles
) ->
{options,
Format,
new_resolve_options(Resolve_enabled, Resolve_mode),
Config_base_name,
Profile_env_var,
Profiles}.
-file("src/yodel/options.gleam", 73).
?DOC(false).
-spec default() -> options().
default() ->
new(auto, true, lenient, <<"config"/utf8>>, <<"YODEL_PROFILES"/utf8>>, []).
-file("src/yodel/options.gleam", 78).
?DOC(false).
-spec with_format(options(), format()) -> options().
with_format(Options, Format) ->
new(
Format,
erlang:element(2, erlang:element(3, Options)),
erlang:element(3, erlang:element(3, Options)),
erlang:element(4, Options),
erlang:element(5, Options),
erlang:element(6, Options)
).
-file("src/yodel/options.gleam", 90).
?DOC(false).
-spec with_resolve_enabled(options(), boolean()) -> options().
with_resolve_enabled(Options, Resolve_enabled) ->
new(
erlang:element(2, Options),
Resolve_enabled,
erlang:element(3, erlang:element(3, Options)),
erlang:element(4, Options),
erlang:element(5, Options),
erlang:element(6, Options)
).
-file("src/yodel/options.gleam", 105).
?DOC(false).
-spec with_resolve_mode(options(), resolve_mode()) -> options().
with_resolve_mode(Options, Resolve_mode) ->
new(
erlang:element(2, Options),
erlang:element(2, erlang:element(3, Options)),
Resolve_mode,
erlang:element(4, Options),
erlang:element(5, Options),
erlang:element(6, Options)
).
-file("src/yodel/options.gleam", 120).
?DOC(false).
-spec with_config_base_name(options(), binary()) -> options().
with_config_base_name(Options, Config_base_name) ->
new(
erlang:element(2, Options),
erlang:element(2, erlang:element(3, Options)),
erlang:element(3, erlang:element(3, Options)),
Config_base_name,
erlang:element(5, Options),
erlang:element(6, Options)
).
-file("src/yodel/options.gleam", 135).
?DOC(false).
-spec with_profile_env_var(options(), binary()) -> options().
with_profile_env_var(Options, Profile_env_var) ->
new(
erlang:element(2, Options),
erlang:element(2, erlang:element(3, Options)),
erlang:element(3, erlang:element(3, Options)),
erlang:element(4, Options),
Profile_env_var,
erlang:element(6, Options)
).
-file("src/yodel/options.gleam", 150).
?DOC(false).
-spec with_profiles(options(), list(binary())) -> options().
with_profiles(Options, Profiles) ->
new(
erlang:element(2, Options),
erlang:element(2, erlang:element(3, Options)),
erlang:element(3, erlang:element(3, Options)),
erlang:element(4, Options),
erlang:element(5, Options),
Profiles
).
-file("src/yodel/options.gleam", 165).
?DOC(false).
-spec get_format(options()) -> format().
get_format(Options) ->
erlang:element(2, Options).
-file("src/yodel/options.gleam", 170).
?DOC(false).
-spec is_resolve_enabled(options()) -> boolean().
is_resolve_enabled(Options) ->
erlang:element(2, erlang:element(3, Options)).
-file("src/yodel/options.gleam", 175).
?DOC(false).
-spec get_resolve_mode(options()) -> resolve_mode().
get_resolve_mode(Options) ->
erlang:element(3, erlang:element(3, Options)).
-file("src/yodel/options.gleam", 180).
?DOC(false).
-spec get_config_base_name(options()) -> binary().
get_config_base_name(Options) ->
erlang:element(4, Options).
-file("src/yodel/options.gleam", 185).
?DOC(false).
-spec get_profile_env_var(options()) -> binary().
get_profile_env_var(Options) ->
erlang:element(5, Options).
-file("src/yodel/options.gleam", 190).
?DOC(false).
-spec get_profiles(options()) -> list(binary()).
get_profiles(Options) ->
erlang:element(6, Options).