-module(finanza@currency@catalog).
-compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch, inline]).
-define(FILEPATH, "src/finanza/currency/catalog.gleam").
-export([usd/0, eur/0, jpy/0, gbp/0, chf/0, cad/0, aud/0, cny/0, hkd/0, sgd/0, krw/0, inr/0, brl/0, mxn/0, zar/0, all/0, find/1]).
-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(
" A static snapshot of 15 major ISO 4217 currencies.\n"
"\n"
" The snapshot is informational and is not refreshed against the\n"
" ISO 4217 maintenance register. For currencies outside the\n"
" catalogue, build a [`Currency`](../currency.html#Currency) directly\n"
" with [`currency.new_currency`](../currency.html#new_currency).\n"
).
-file("src/finanza/currency/catalog.gleam", 115).
-spec build(binary(), integer(), binary(), binary()) -> finanza@currency:currency().
build(Code, Exponent, Symbol, Name) ->
C@1 = case finanza@currency:new_currency(Code, Exponent, Symbol, Name) of
{ok, C} -> C;
_assert_fail ->
erlang:error(#{gleam_error => let_assert,
message => <<"Pattern match failed, no pattern matched the value."/utf8>>,
file => <<?FILEPATH/utf8>>,
module => <<"finanza/currency/catalog"/utf8>>,
function => <<"build"/utf8>>,
line => 122,
value => _assert_fail,
start => 3649,
'end' => 3784,
pattern_start => 3660,
pattern_end => 3665})
end,
C@1.
-file("src/finanza/currency/catalog.gleam", 13).
?DOC(" US Dollar — `USD`, exponent 2, symbol `$`.\n").
-spec usd() -> finanza@currency:currency().
usd() ->
build(<<"USD"/utf8>>, 2, <<"$"/utf8>>, <<"US Dollar"/utf8>>).
-file("src/finanza/currency/catalog.gleam", 18).
?DOC(" Euro — `EUR`, exponent 2, symbol `€`.\n").
-spec eur() -> finanza@currency:currency().
eur() ->
build(<<"EUR"/utf8>>, 2, <<"€"/utf8>>, <<"Euro"/utf8>>).
-file("src/finanza/currency/catalog.gleam", 23).
?DOC(" Japanese Yen — `JPY`, exponent 0, symbol `¥`.\n").
-spec jpy() -> finanza@currency:currency().
jpy() ->
build(<<"JPY"/utf8>>, 0, <<"¥"/utf8>>, <<"Japanese Yen"/utf8>>).
-file("src/finanza/currency/catalog.gleam", 28).
?DOC(" Pound Sterling — `GBP`, exponent 2, symbol `£`.\n").
-spec gbp() -> finanza@currency:currency().
gbp() ->
build(<<"GBP"/utf8>>, 2, <<"£"/utf8>>, <<"Pound Sterling"/utf8>>).
-file("src/finanza/currency/catalog.gleam", 33).
?DOC(" Swiss Franc — `CHF`, exponent 2, symbol `CHF`.\n").
-spec chf() -> finanza@currency:currency().
chf() ->
build(<<"CHF"/utf8>>, 2, <<"CHF"/utf8>>, <<"Swiss Franc"/utf8>>).
-file("src/finanza/currency/catalog.gleam", 38).
?DOC(" Canadian Dollar — `CAD`, exponent 2, symbol `$`.\n").
-spec cad() -> finanza@currency:currency().
cad() ->
build(<<"CAD"/utf8>>, 2, <<"$"/utf8>>, <<"Canadian Dollar"/utf8>>).
-file("src/finanza/currency/catalog.gleam", 43).
?DOC(" Australian Dollar — `AUD`, exponent 2, symbol `$`.\n").
-spec aud() -> finanza@currency:currency().
aud() ->
build(<<"AUD"/utf8>>, 2, <<"$"/utf8>>, <<"Australian Dollar"/utf8>>).
-file("src/finanza/currency/catalog.gleam", 48).
?DOC(" Renminbi — `CNY`, exponent 2, symbol `¥`.\n").
-spec cny() -> finanza@currency:currency().
cny() ->
build(<<"CNY"/utf8>>, 2, <<"¥"/utf8>>, <<"Renminbi"/utf8>>).
-file("src/finanza/currency/catalog.gleam", 53).
?DOC(" Hong Kong Dollar — `HKD`, exponent 2, symbol `HK$`.\n").
-spec hkd() -> finanza@currency:currency().
hkd() ->
build(<<"HKD"/utf8>>, 2, <<"HK$"/utf8>>, <<"Hong Kong Dollar"/utf8>>).
-file("src/finanza/currency/catalog.gleam", 58).
?DOC(" Singapore Dollar — `SGD`, exponent 2, symbol `S$`.\n").
-spec sgd() -> finanza@currency:currency().
sgd() ->
build(<<"SGD"/utf8>>, 2, <<"S$"/utf8>>, <<"Singapore Dollar"/utf8>>).
-file("src/finanza/currency/catalog.gleam", 63).
?DOC(" South Korean Won — `KRW`, exponent 0, symbol `₩`.\n").
-spec krw() -> finanza@currency:currency().
krw() ->
build(<<"KRW"/utf8>>, 0, <<"₩"/utf8>>, <<"South Korean Won"/utf8>>).
-file("src/finanza/currency/catalog.gleam", 68).
?DOC(" Indian Rupee — `INR`, exponent 2, symbol `₹`.\n").
-spec inr() -> finanza@currency:currency().
inr() ->
build(<<"INR"/utf8>>, 2, <<"₹"/utf8>>, <<"Indian Rupee"/utf8>>).
-file("src/finanza/currency/catalog.gleam", 73).
?DOC(" Brazilian Real — `BRL`, exponent 2, symbol `R$`.\n").
-spec brl() -> finanza@currency:currency().
brl() ->
build(<<"BRL"/utf8>>, 2, <<"R$"/utf8>>, <<"Brazilian Real"/utf8>>).
-file("src/finanza/currency/catalog.gleam", 78).
?DOC(" Mexican Peso — `MXN`, exponent 2, symbol `$`.\n").
-spec mxn() -> finanza@currency:currency().
mxn() ->
build(<<"MXN"/utf8>>, 2, <<"$"/utf8>>, <<"Mexican Peso"/utf8>>).
-file("src/finanza/currency/catalog.gleam", 83).
?DOC(" South African Rand — `ZAR`, exponent 2, symbol `R`.\n").
-spec zar() -> finanza@currency:currency().
zar() ->
build(<<"ZAR"/utf8>>, 2, <<"R"/utf8>>, <<"South African Rand"/utf8>>).
-file("src/finanza/currency/catalog.gleam", 89).
?DOC(
" All currencies in the static catalogue, in the order they appear\n"
" on this page.\n"
).
-spec all() -> list(finanza@currency:currency()).
all() ->
[usd(),
eur(),
jpy(),
gbp(),
chf(),
cad(),
aud(),
cny(),
hkd(),
sgd(),
krw(),
inr(),
brl(),
mxn(),
zar()].
-file("src/finanza/currency/catalog.gleam", 111).
?DOC(
" Look up a catalogue currency by its ISO 4217 alpha-3 code.\n"
" Codes are compared case-sensitively in upper case.\n"
).
-spec find(binary()) -> {ok, finanza@currency:currency()} | {error, nil}.
find(Code) ->
gleam@list:find(all(), fun(C) -> finanza@currency:code(C) =:= Code end).