-module(glenvy@env). -compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch]). -export([all/0, string/1, parse/2, int/1, float/1, bool/1]). -export_type([error/0]). -type error() :: {not_found, binary()} | {failed_to_parse, binary()}. -file("/Users/maxdeviant/projects/glenvy/src/glenvy/env.gleam", 19). -spec all() -> gleam@dict:dict(binary(), binary()). all() -> glenvy_ffi:get_all_env(). -file("/Users/maxdeviant/projects/glenvy/src/glenvy/env.gleam", 24). -spec string(binary()) -> {ok, binary()} | {error, error()}. string(Name) -> _pipe = glenvy_ffi:get_env(Name), gleam@result:map_error(_pipe, fun(_) -> {not_found, Name} end). -file("/Users/maxdeviant/projects/glenvy/src/glenvy/env.gleam", 34). -spec parse(binary(), fun((binary()) -> {ok, SUC} | {error, any()})) -> {ok, SUC} | {error, error()}. parse(Name, Parse) -> gleam@result:'try'(string(Name), fun(Value) -> _pipe = Value, _pipe@1 = Parse(_pipe), gleam@result:map_error( _pipe@1, fun(_) -> {failed_to_parse, Name} end ) end). -file("/Users/maxdeviant/projects/glenvy/src/glenvy/env.gleam", 48). -spec int(binary()) -> {ok, integer()} | {error, error()}. int(Name) -> _pipe = Name, parse(_pipe, fun gleam_stdlib:parse_int/1). -file("/Users/maxdeviant/projects/glenvy/src/glenvy/env.gleam", 56). -spec float(binary()) -> {ok, float()} | {error, error()}. float(Name) -> _pipe = Name, parse(_pipe, fun gleam_stdlib:parse_float/1). -file("/Users/maxdeviant/projects/glenvy/src/glenvy/env.gleam", 82). -spec bool(binary()) -> {ok, boolean()} | {error, error()}. bool(Name) -> Parse_bool = fun(Value) -> Value@1 = begin _pipe = Value, string:lowercase(_pipe) end, case Value@1 of <<"true"/utf8>> -> {ok, true}; <<"t"/utf8>> -> {ok, true}; <<"yes"/utf8>> -> {ok, true}; <<"y"/utf8>> -> {ok, true}; <<"1"/utf8>> -> {ok, true}; <<"false"/utf8>> -> {ok, false}; <<"f"/utf8>> -> {ok, false}; <<"no"/utf8>> -> {ok, false}; <<"n"/utf8>> -> {ok, false}; <<"0"/utf8>> -> {ok, false}; _ -> {error, nil} end end, _pipe@1 = Name, parse(_pipe@1, Parse_bool).