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(FYH, FYI, FYJ) :: {definition,
fun((formz@field:field(), formz@widget:args()) -> FYH),
fun((binary()) -> {ok, FYI} | {error, binary()}),
FYI,
fun((fun((binary()) -> {ok, FYI} | {error, binary()}), binary()) -> {ok,
FYJ} |
{error, binary()}),
FYJ}.
-file("/Users/benjamin/Projects/formz/formz/src/formz/definition.gleam", 107).
-spec make_simple_optional_parse() -> fun((fun((binary()) -> {ok, FYK} |
{error, binary()}), binary()) -> {ok, gleam@option:option(FYK)} |
{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", 124).
-spec set_widget(
definition(FYQ, FYR, FYS),
fun((formz@field:field(), formz@widget:args()) -> FYQ)
) -> definition(FYQ, FYR, FYS).
set_widget(Definition, Widget) ->
erlang:setelement(2, Definition, Widget).
-file("/Users/benjamin/Projects/formz/formz/src/formz/definition.gleam", 146).
-spec validate(
definition(FZA, FZB, FZC),
fun((FZB) -> {ok, FZB} | {error, binary()})
) -> definition(FZA, FZB, FZC).
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).