-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).