aboutsummaryrefslogtreecommitdiff
path: root/aoc2023/build/packages/gleam_stdlib/src/gleam@option.erl
diff options
context:
space:
mode:
Diffstat (limited to 'aoc2023/build/packages/gleam_stdlib/src/gleam@option.erl')
-rw-r--r--aoc2023/build/packages/gleam_stdlib/src/gleam@option.erl147
1 files changed, 0 insertions, 147 deletions
diff --git a/aoc2023/build/packages/gleam_stdlib/src/gleam@option.erl b/aoc2023/build/packages/gleam_stdlib/src/gleam@option.erl
deleted file mode 100644
index 5c20713..0000000
--- a/aoc2023/build/packages/gleam_stdlib/src/gleam@option.erl
+++ /dev/null
@@ -1,147 +0,0 @@
--module(gleam@option).
--compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function]).
-
--export([all/1, is_some/1, is_none/1, to_result/2, from_result/1, unwrap/2, lazy_unwrap/2, map/2, flatten/1, then/2, 'or'/2, lazy_or/2, values/1]).
--export_type([option/1]).
-
--type option(GB) :: {some, GB} | none.
-
--spec do_all(list(option(GC)), list(GC)) -> option(list(GC)).
-do_all(List, Acc) ->
- case List of
- [] ->
- {some, Acc};
-
- [X | Rest] ->
- Accumulate = fun(Acc@1, Item) -> case {Acc@1, Item} of
- {{some, Values}, {some, Value}} ->
- {some, [Value | Values]};
-
- {_, _} ->
- none
- end end,
- Accumulate(do_all(Rest, Acc), X)
- end.
-
--spec all(list(option(GI))) -> option(list(GI)).
-all(List) ->
- do_all(List, []).
-
--spec is_some(option(any())) -> boolean().
-is_some(Option) ->
- Option /= none.
-
--spec is_none(option(any())) -> boolean().
-is_none(Option) ->
- Option =:= none.
-
--spec to_result(option(GR), GU) -> {ok, GR} | {error, GU}.
-to_result(Option, E) ->
- case Option of
- {some, A} ->
- {ok, A};
-
- _ ->
- {error, E}
- end.
-
--spec from_result({ok, GX} | {error, any()}) -> option(GX).
-from_result(Result) ->
- case Result of
- {ok, A} ->
- {some, A};
-
- _ ->
- none
- end.
-
--spec unwrap(option(HC), HC) -> HC.
-unwrap(Option, Default) ->
- case Option of
- {some, X} ->
- X;
-
- none ->
- Default
- end.
-
--spec lazy_unwrap(option(HE), fun(() -> HE)) -> HE.
-lazy_unwrap(Option, Default) ->
- case Option of
- {some, X} ->
- X;
-
- none ->
- Default()
- end.
-
--spec map(option(HG), fun((HG) -> HI)) -> option(HI).
-map(Option, Fun) ->
- case Option of
- {some, X} ->
- {some, Fun(X)};
-
- none ->
- none
- end.
-
--spec flatten(option(option(HK))) -> option(HK).
-flatten(Option) ->
- case Option of
- {some, X} ->
- X;
-
- none ->
- none
- end.
-
--spec then(option(HO), fun((HO) -> option(HQ))) -> option(HQ).
-then(Option, Fun) ->
- case Option of
- {some, X} ->
- Fun(X);
-
- none ->
- none
- end.
-
--spec 'or'(option(HT), option(HT)) -> option(HT).
-'or'(First, Second) ->
- case First of
- {some, _} ->
- First;
-
- none ->
- Second
- end.
-
--spec lazy_or(option(HX), fun(() -> option(HX))) -> option(HX).
-lazy_or(First, Second) ->
- case First of
- {some, _} ->
- First;
-
- none ->
- Second()
- end.
-
--spec do_values(list(option(IB)), list(IB)) -> list(IB).
-do_values(List, Acc) ->
- case List of
- [] ->
- Acc;
-
- [X | Xs] ->
- Accumulate = fun(Acc@1, Item) -> case Item of
- {some, Value} ->
- [Value | Acc@1];
-
- none ->
- Acc@1
- end end,
- Accumulate(do_values(Xs, Acc), X)
- end.
-
--spec values(list(option(IG))) -> list(IG).
-values(Options) ->
- do_values(Options, []).