Current section
Files
Jump to
Current section
Files
src/formz@definition.erl
-module(formz@definition).
-compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch]).
-export([make_simple_optional_parse/0, set_widget/2, validate/2]).
-export_type([definition/3]).
-type definition(FYN, FYO, FYP) :: {definition,
fun((formz@field:field(), formz@widget:args()) -> FYN),
fun((binary()) -> {ok, FYO} | {error, binary()}),
FYO,
fun((fun((binary()) -> {ok, FYO} | {error, binary()}), binary()) -> {ok,
FYP} |
{error, binary()}),
FYP}.
-file("/Users/benjamin/Projects/formz/formz/src/formz/definition.gleam", 106).
-spec make_simple_optional_parse() -> fun((fun((binary()) -> {ok, FYQ} |
{error, binary()}), binary()) -> {ok, gleam@option:option(FYQ)} |
{error, binary()}).
make_simple_optional_parse() ->
fun(Fun, Str) -> case Str of
<<""/utf8>> ->
{ok, none};
_ ->
_pipe = Fun(Str),
gleam@result:map(_pipe, fun(Field@0) -> {some, Field@0} end)
end end.
-file("/Users/benjamin/Projects/formz/formz/src/formz/definition.gleam", 123).
-spec set_widget(
definition(FYW, FYX, FYY),
fun((formz@field:field(), formz@widget:args()) -> FYW)
) -> definition(FYW, FYX, FYY).
set_widget(Definition, Widget) ->
erlang:setelement(2, Definition, Widget).
-file("/Users/benjamin/Projects/formz/formz/src/formz/definition.gleam", 145).
-spec validate(
definition(FZG, FZH, FZI),
fun((FZH) -> {ok, FZH} | {error, binary()})
) -> definition(FZG, FZH, FZI).
validate(Def, Fun) ->
erlang:setelement(3, Def, fun(Val) -> _pipe = Val,
_pipe@1 = (erlang:element(3, Def))(_pipe),
gleam@result:'try'(_pipe@1, Fun) end).